NHibernate 3.0 QueryOver相当于Nhibernate Linq中的FetchMany

时间:2011-02-03 13:09:15

标签: nhibernate queryover

Nhibernate 3中的linq提供程序使我能够使用FetchMany,ThenFetchMany等为集合指定多个级别的热切提取。是否有使用QueryOver进行doinf的等效方法。

说我有一个结构

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 个答案:

答案 0 :(得分:2)

我实际上在SO上问了完全相同的question,并发布了我找到的答案。

答案 1 :(得分: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();