Zapytanie nhibernate dla elementów, które mają właściwość Dictionary zawierającą wartość
Potrzebuję sposobu na zapytanie w Nhibernate dla elementów, które mają właściwość Dictionary zawierającą wartość.
Założyć:
public class Item
{
public virtual IDictionary<int, string> DictionaryProperty {get; set;}
}
i mapowanie:
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();
}
Chcę wysłać zapytanie do wszystkichItem
s, które mają wartość słownika „SomeText”. Następujący przykład w Linq kończy się niepowodzeniem:
session.Query<Item>().Where(r => r.DictionaryProperty.Any(g => g.Value == "SomeText"))
z błędem
cannot dereference scalar collection element: Value
Czy jest jakiś sposób na osiągnięcie tego w NHibernate? Linq nie jest wyłącznym wymogiem, ale jest preferowany. Nie, że nie jestem zainteresowany zapytaniem o słownikklawiatura które można osiągnąć za pomocą.ContainsKey
. Ρορto jest podobny, ale nie taki sam