好吧,我想你需要將來的查詢和DistinctRootEntityResultTransformer
我可以告訴你我是如何與標準做到這一點,也建議你做同樣的。在我們的項目中,所有的東西都是LINQ,但是這個必須是醜陋的,並且帶有魔術字符串。這是具有許多成員和許多子小組的組對象。在執行查詢之後,我得到了根(根是parent爲空的元素),其中保存了LOADED對象。對於您的情況,您應該添加CommendId的限制。另外,每個提取都必須在單獨的未來查詢中完成。祝你好運
public static GroupDto GetGroupHierarchy(this ISession session)
{
session
.CreateCriteria<GroupDto>()
.Add(Expression.Eq("IsActive", true))
.SetFetchMode("Subgroups", NHibernate.FetchMode.Eager)
.SetResultTransformer(new DistinctRootEntityResultTransformer())
.Future<GroupDto>();
var groups = session
.CreateCriteria<GroupDto>()
.Add(Expression.Eq("IsActive", true))
.SetFetchMode("Members", FetchMode.Eager)
.SetResultTransformer(new DistinctRootEntityResultTransformer())
.Future<GroupDto>();
return groups.Single(g => g.Parent == null);
}
Urmmmm。 'Session.QueryOver().ToList()'???這將加載整個表格。 –
Rippo
2013-05-14 17:49:48
@Rippo對不起我不是清楚前面,所以我有一個評論的ID,並希望與孩子的滿樹一起加載此評論評論一路下跌 – marky 2013-05-14 20:19:16