2011-02-03 60 views
4

Nhibernate 3中的linq提供程序使我能夠使用FetchMany,ThenFetchMany等爲集合指定多個級別的提前提取。是否有使用QueryOver執行此操作的等效方法。NHibernate 3.0 QueryOver相當於Nhibernate中的FetchMany Linq

說我有一個結構

class A 
{ 
    IList<B> b; 
} 

class B 
{ 
    IList<C> c; 
} 

class C 
{ 

} 

我渴望負荷NH LINQ的

session.Query<A> 
     .FetchMany(x=> a.b) 
     .ThenFetchMany(y => y.c) 
     .ToList(); 

整個樹是否有這樣做使用QueryOver API的方法嗎?

回答

2

我已經問過在這裏SO完全相同的question,併發布了我找到的答案。

0
B bAlias = null; 
C cAlias = null; 
var list = session.QueryOver<A> 
.JoinAlias(x=>x.b,() => bAlias, JoinType.LeftOuterJoin) 
.JoinAlias(x=>bAlias.c,() => cAlias, JoinType.LeftOuterJoin) 
.List();