Consulta Nhibernate para itens que possuem uma Propriedade de Dicionário que contém valor
Eu preciso de uma maneira de consultar no Nhibernate itens que tenham uma propriedade de dicionário que contenha valor.
Presumir:
public class Item
{
public virtual IDictionary<int, string> DictionaryProperty {get; set;}
}
e mapeamento:
public ItemMap()
{
HasMany(x => x.DictionaryProperty)
.Access.ReadOnlyPropertyThroughCamelCaseField(Prefix.Underscore)
.AsMap<string>(
index => index.Column("IDNumber").Type<int>(),
element => element.Column("TextField").Type<string>().Length(666)
)
.Cascade.AllDeleteOrphan()
.Fetch.Join();
}
Eu quero consultar todosItem
s que possuem um valor de dicionário de "SomeText". O exemplo a seguir no Linq falha:
session.Query<Item>().Where(r => r.DictionaryProperty.Any(g => g.Value == "SomeText"))
com erro
cannot dereference scalar collection element: Value
Então, existe alguma maneira de conseguir isso no NHibernate? O Linq não é um requisito exclusivo, mas é preferido. Não que eu não esteja interessado em consultar o dicionáriochaves que pode ser alcançado usando.ContainsKey
. Φορesta é semelhante, mas não é o mesmo