我知道如何eager load multiple levels of entities with an include statement。但是如果我正在装树呢?考虑这种实体层次结构:
现在假设我要加载添加了所有Bravo,Charlie和Delta实体的Alpha实体。这可以用一个Include
语句来完成吗?我怀疑答案是否定的,但我想确定。
否则,我怀疑我只会使用两个Include
语句。但即使这样也让我停下来,因为这意味着我必须两次引用Bravo
(每Include
一次)并且我不知道是否会混淆EF。
答案 0 :(得分:2)
不,使用一个Include就无法完成。
您可以像这样链接包含:
var entities = context.Alphas.Include("Bravos").Include("Bravos.Charlies").Include("Bravos.Deltas");
答案 1 :(得分:2)
可以使用两个包括这样做:
var entities = context.Alphas.Include("Bravos.Charlies")
.Include("Bravos.Deltas");
或者这个:
var entities = context.Alphas.Include(a => a.Bravos.Select(b => b.Charlies))
.Include(a => a.Bravos.Select(b => b.Deltas));
显然,首先是更优雅。