[英]Entity Framework - Include with multiple levels
如果我有3个班级A,B和C:
class A {
public B b { get; set; }
public C c { get; set; }
}
class B {
public C c { get; set; }
}
class C {
...
}
当我进行如下查询时:
Context.A.Where(...).Include(x => x.b).Include(x => x.c);
实体同时在A和B中加载C对象,从而复制数据。 有办法预防吗? 我不使用延迟加载。
您指示实体框架使用A集加载b和c实体。 由于b项包含对C类型项的引用,这些引用实际上可能是与a对象加载的项相同,因此Entity Framework将使用它们来构造对象图。 这并不意味着Entity Framework会生成额外的SQL连接来为B类型加载c项目。 为此,您将编写
Context.A.Where(...).Include(x=>x.b).Include(x=>x.c).Include(x=>x.b.c)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.