Nhibernate запрос для элементов, которые имеют свойство Dictionary, содержащее значение
Мне нужен способ сделать запрос в Nhibernate для элементов, которые имеют свойство Dictionary, содержащее значение.
Предполагать:
public class Item
{
public virtual IDictionary DictionaryProperty {get; set;}
}
и отображение:
public ItemMap()
{
HasMany(x => x.DictionaryProperty)
.Access.ReadOnlyPropertyThroughCamelCaseField(Prefix.Underscore)
.AsMap(
index => index.Column("IDNumber").Type(),
element => element.Column("TextField").Type().Length(666)
)
.Cascade.AllDeleteOrphan()
.Fetch.Join();
}
Я хочу запросить всеItem
s, которые имеют значение словаря "SOMETEXT», Следующий пример в Linq завершается ошибкой:
session.Query().Where(r => r.DictionaryProperty.Any(g => g.Value == "SomeText"))
с ошибкой
cannot dereference scalar collection element: Value
Так есть ли способ добиться этого в NHibernate? Linq не является исключительным требованием, но его предпочитают. Не то чтобы яя не заинтересован в запросе по словарюключи это может быть достигнуто с помощью. Φορ.ContainsKey
этот похоже, но не то же самое