NHibernate FetchMode

时间:2010-05-05 12:44:38

标签: nhibernate

我有一个对象Parent,它有一个Children列表:

class Parent {Id, Name, IList<Child> children}
class Child {Id, Name}

我需要选择所有有孩子条件的父母,但我不想获得重复的行(不希望孩子的详细信息显示在选择列表中)

以下是代码:

session.CreateCriteria(typeof(Parent))
.SetFetchMode("children", FetchMode.Select);
.CreateCriteria("children").Add(Subqueries.PropertyIn("Id", {1,2,3,4}))
.List<Parent>();

查询将所有子类的属性添加到选择列表中,导致重复的父项。

有没有办法在没有选择列表中的孩子详细信息的情况下选择所有父母?

由于

1 个答案:

答案 0 :(得分:0)

一种可能的解决方案:

session.CreateCriteria<Parent>()
       .CreateCriteria("children")
       .Add(Subqueries.PropertyIn("Id", {1,2,3,4}))
       .SetResultTransformer(Transformers.DistinctRootEntity)
       .List<Parent>();