В Linq-to-Nhibernate возможно ли использовать .Fetch () после .Select ()? - PullRequest
1 голос
/ 14 декабря 2011

Если бы у меня был Объект A, который содержал ссылку «многие к одному» на Объект B, где Объект B содержал коллекцию Объекта «один ко многим» ... рассмотрите следующий запрос:

IQueryable<A> query = getIQueryableSomehow();

List<B> resultList = query.Where(A => A.whatever == something).Select(A => A.B).Fetch(B => B.C).ToList();

Я хочу сделать что-то похожее на это, но я продолжаю получать исключение нулевой ссылки с этим кодом.Есть ли хитрый трюк для выполнения такого запроса и получения набора коллекций объектов B, или это невозможно?

Спасибо!

1 Ответ

2 голосов
/ 14 декабря 2011

Вы можете указать Fetch, прежде чем загружать все A, B, C, а затем выбрать Bs

List<B> resultList = query
    .Where(A => A.whatever == something)
    .Fetch(A => A.B).ThenFetch(B => B.C)
    .Select(A => A.B)
    .ToList();
...