【问题标题】:In Linq-to-Nhibernate, is it possible to use .Fetch() after a .Select()?在 Linq-to-Nhibernate 中,是否可以在 .Select() 之后使用 .Fetch()?
【发布时间】:2011-12-14 16:26:01
【问题描述】:

如果我有一个对象 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();

我想做与此类似的事情,但我不断收到此代码的空引用异常。实现这种查询并获取一堆对象 B 集合是否有鬼鬼祟祟的技巧,还是不可能?

谢谢!

【问题讨论】:

    标签: nhibernate linq-to-nhibernate


    【解决方案1】:

    你可以在加载所有A、B、C之前指定Fetch,然后选择Bs

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-01
      • 1970-01-01
      • 2011-05-28
      • 1970-01-01
      • 2020-08-18
      • 1970-01-01
      • 2011-02-20
      • 1970-01-01
      相关资源
      最近更新 更多