NHibernate ICriteria Restriction 在集合中查找与值匹配的属性
NHibernate ICriteria Restriction find properties in a collection that match a value
假设我有以下内容:
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 查询它,以查找所有包含 Widget 的 MyClass,其中任何 Bar 都具有特定值。我可以使用 Restrictions.In
来查找值列表中的 属性,但我无法弄清楚如何反转它并找出集合 属性 是否包含与 a 匹配的内容值。
我正在努力实现类似的目标:
criteria = criteria.Add(Restrictions.Eq("WidgetList.Bar", myValue));
(以上明显不正确)
我该怎么做?
我通过创建别名实现了我想要的:
criteria.CreateAlias("WidgetList", "widgets", JoinType.LeftOuterJoin);
criteria = criteria.Add(Restrictions.Eq("widgets.Bar", myValue));
假设我有以下内容:
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 查询它,以查找所有包含 Widget 的 MyClass,其中任何 Bar 都具有特定值。我可以使用 Restrictions.In
来查找值列表中的 属性,但我无法弄清楚如何反转它并找出集合 属性 是否包含与 a 匹配的内容值。
我正在努力实现类似的目标:
criteria = criteria.Add(Restrictions.Eq("WidgetList.Bar", myValue));
(以上明显不正确)
我该怎么做?
我通过创建别名实现了我想要的:
criteria.CreateAlias("WidgetList", "widgets", JoinType.LeftOuterJoin);
criteria = criteria.Add(Restrictions.Eq("widgets.Bar", myValue));