【发布时间】:2019-03-12 07:47:55
【问题描述】:
给定以下 3 个(简化的)类:
- A 类 { int Id; }
- B 类 { int Id; }
- JunctionClass { ClassA classA; B类B类; }
当我尝试加载JunctionClass 列表时...
var junctionClassList = _appDbContext.JunctionClass
.Include(jc => jc.ClassA)
.Include(jc => jc.ClassB).ToList();
代码不会加载 ClassA 和 ClassB 对象。
我找到了解决方法,但我认为我使用 EF Core 的方式不应该是这样:
var classAList = _appDbContext.ClassA.ToList();
var classBList = _appDbContext.ClassB.ToList();
var junctionClassList = _appDbContext.JunctionClass
.Include(jc => jc.ClassA)
.Include(jc => jc.ClassB).ToList();
这样,junctionClassList 对象也将加载 classA 和 classB 依赖项。
我的问题是 - 这是使用延迟/急切加载的正确方法吗?还是有别的办法?
【问题讨论】:
-
你在 JunctionClass 中为 ClassA 和 ClassB 添加了 virtual 关键字吗?
-
我做了,但仍然没有结果。但是,添加“virtual”关键字后,我没有更新数据库。我应该吗?
-
你有哪个 EF Core 版本?
-
2.1.3-rtm-32065
标签: c# entity-framework-core asp.net-core-2.0