NHibernate Criteria Collection包含

时间:2009-08-25 18:43:27

标签: nhibernate

我有一个使用多对多集合映射的父/子关系。

public class Parent
{
    public ISet<Child> Children { get; set; }
}

public class Child {}

public class ParentMap : ClassMap<Parent>
{
    HasManyToMany(x => x.Children)
        .AsSet();
}

如何编写查询以选择包含给定子项的所有父项?我猜想它会是这样的,但是这个API不存在:

Session.CreateCriteria<Parent>()
   .Add(Expression.Contains("Children", child)
   .List<Parent>();

我不能为我的生活在任何地方找到答案。我的大脑今天没有完全运作,谷歌到目前为止还没有让我失望。

1 个答案:

答案 0 :(得分:9)

这样的事情怎么样?

Session.CreateCriteria<Parent>()
   .CreateCriteria("Children")
   .Add(Expression.Eq("Id", child.Id)
   .List<Parent>();

Session.CreateCriteria<Parent>()
   .CreateCriteria("Children")
   .Add(Expression.In("Id", child.Id)
   .List<Parent>();

所以你可以传入一组ID。