NHibernate 3.0 QueryOver相当于Nhibernate Linq中的FetchMany

NHibernate 3.0 QueryOver equivalent of the FetchMany in Nhibernate Linq

nhibernate 3中的linq提供程序使我能够使用fetchmany、thenfitchmany等为集合指定多个级别的预取。是否有使用queryover的等效doinf方法。

假设我有一个结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class  A
{
  IList b;
}

class B
{
  IList<C> c;
}

class C
{

}

我可以把整棵树都装进NH LINQ

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

有没有一种方法可以使用queryover api来做到这一点?


实际上,我在这里问了一个完全相同的问题,然后贴出了我找到的答案。


1
2
3
4
5
6
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();