Ограничение NHibernate ICriteria находит свойства в коллекции, которые соответствуют значению
Предположим, у меня есть следующее:
public class MyClass
{
public List<Widget> WidgetList { get; set; }
}
public class Widget
{
public string Foo { get; set; }
public string Bar { get; set; }
}
Я хочу запросить это, используя NHibernate ICriteria API, чтобы найти все MyClass, которые содержат виджет, где любой бар имеет определенное значение. я могу использовать Restrictions.In
чтобы найти свойство, которое находится в списке значений, но я не могу понять, как изменить это, и выяснить, содержит ли свойство коллекции что-либо, совпадающее со значением.
Я пытаюсь достичь чего-то вроде:
criteria = criteria.Add(Restrictions.Eq("WidgetList.Bar", myValue));
(где вышесказанное явно неверно)
Как я могу это сделать?
1 ответ
Решение
Я достиг того, что хотел, создав псевдоним:
criteria.CreateAlias("WidgetList", "widgets", JoinType.LeftOuterJoin);
criteria = criteria.Add(Restrictions.Eq("widgets.Bar", myValue));