Ограничение 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));
Другие вопросы по тегам