NHibernate 3.0 QueryOver эквивалент FetchMany в Nhibernate Linq - PullRequest
4 голосов
/ 03 февраля 2011

Поставщик linq в Nhibernate 3 дает мне возможность указывать активную выборку нескольких уровней для коллекций, используя FetchMany, ThenFetchMany и т. Д. Есть ли эквивалентный способ сделать это с помощью QueryOver.

Скажите, что у меня есть структура

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

Есть ли способ сделать это с помощью API QueryOver?

Ответы [ 2 ]

2 голосов
/ 22 февраля 2011

Я на самом деле задал тот же самый вопрос здесь, на SO, и опубликовал ответ, который нашел.

0 голосов
/ 07 мая 2012
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();
...