在实体框架中加载子代
本文关键字:加载 实体 框架 | 更新日期: 2023-09-27 18:09:36
我有一个以下实体层次
class ClassA {
ICollection<ClassB> classBs { get; set; }
}
class ClassB {
ClassC classC { get; set; }
ClassD classD { get; set; }
}
class ClassC {
}
class ClassD {
}
我希望当我加载类a的实例时,类b的所有相关实例以及类c和类d的相关实例都应该被填充。在我的存储库中编写的代码类似于:
context.ClassAs.Include(c => c.classBs)
返回类b的所有相关实例,但类b有类c和类d,它们不会被填充。我查看了一些在线资源,但没有显示如何快速加载这种简单的层次结构。
一个解决方案是使用Select
只包含您想要加载的子节点的子节点,例如
context.ClassAs
.Include(c => c.classBs.Select(c=>c.ClassC))
.Include(c => c.classBs.Select(d=>d.ClassD))