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));