在Linq-to-Nhibernate中,是否可以在.Select()之后使用.Fetch()?

时间:2011-12-13 22:23:58

标签: nhibernate linq-to-nhibernate

如果我的对象A包含对对象B的多对一引用,其中对象B包含对象C的一对多集合...请考虑以下查询:

IQueryable<A> query = getIQueryableSomehow();

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

我想做类似的事情,但我不断用这段代码得到一个空引用异常。是否有一个偷偷摸摸的技巧来实现这种查询并获取一堆Object B集合,还是不可能?

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以指定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();