假设我有以下内容:
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查询它,以查找包含任何Bar具有特定值的Widget的所有MyClass。我可以使用Restrictions.In
来查找值列表中的属性,但我无法弄清楚如何对此进行反转并找出集合属性是否包含与值匹配的内容。
我试图实现以下目标:
criteria = criteria.Add(Restrictions.Eq("WidgetList.Bar", myValue));
(上述情况显然不正确)
我该怎么做?
答案 0 :(得分:1)
我通过创建别名来实现我想要的目标:
criteria.CreateAlias("WidgetList", "widgets", JoinType.LeftOuterJoin);
criteria = criteria.Add(Restrictions.Eq("widgets.Bar", myValue));