在一个集合中查找匹配值的属性
本文关键字:查找 属性 集合 一个 | 更新日期: 2023-09-27 18:14:48
假设我有以下内容:
public class MyClass
{
public List<Widget> WidgetList { get; set; }
}
public class Widget
{
public string Foo { get; set; }
public string Bar { get; set; }
}
我想使用NHibernate iccriteria API来查询这个,以找到包含Widget的所有MyClass,其中任何Bar都有一定的值。我可以使用Restrictions.In
来查找值列表中的属性,但我不知道如何逆转这一点,并找出集合属性是否包含与值匹配的东西。
我想实现的是:
criteria = criteria.Add(Restrictions.Eq("WidgetList.Bar", myValue));
(上面显然是错误的)
我该怎么做?
我通过创建别名实现了我想要的效果:
criteria.CreateAlias("WidgetList", "widgets", JoinType.LeftOuterJoin);
criteria = criteria.Add(Restrictions.Eq("widgets.Bar", myValue));