2010-05-05 46 views
0

我有有孩子的列表的對象父:NHibernate的FetchMode

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

查詢增加了子類的所有性質研究選擇列表,它會導致重複的父母。

有什麼辦法可以選擇所有的父母,而不必在選擇列表中輸入孩子的詳細信息?

感謝

回答

0

一個可能的解決方案:

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