1

我有一个以下实体层次结构

  class ClassA {
  ICollection<ClassB> classBs { get; set; }
  }
  class ClassB {
     ClassC classC { get; set; }
     ClassD classD { get; set; }
  }
  class ClassC { 
  }
  class ClassD { 
  }

我希望当我加载 classA 的实例时,所有相关的 classB 实例及其相关的 ClassC 和 classD 实例都应该被填充。在我的存储库中编写的代码类似于:

 context.ClassAs.Include(c => c.classBs)

这将返回 classB 的所有相关实例,但 classB 有 classC 和 ClassD,它们不会被填充。我在网上查看了一些资源,但没有显示如何急切加载这种简单的层次结构。任何帮助将非常感激。

4

1 回答 1

2

一种解决方案是使用Select仅包含您要加载的子项的子项,例如

context.ClassAs
       .Include(c => c.classBs.Select(c=>c.ClassC))
       .Include(c => c.classBs.Select(d=>d.ClassD))
于 2013-04-17T16:17:01.793 回答