使用 EF Core 1.1.0
我有一个模型,它有自己的集合。
public class A {
public string Ay {get;set;}
public List<B> Bees {get;set;}
}
public class B {
public string Be {get;set;}
public List<C> Seas {get;set;}
}
public class C {
public string See {get;set;}
public bool InDark {get;set;}
public List<D> Sigh {get;set;}
}
现在.. A 很大,99% 的时间我不关心 B,所以它不会被加载。如果我加载它,那么它会是这样的:
context.A.Include(a=>a.Bees).ThenInclude(b=>b.Seas).ThenInclude(c=>c.Sigh)...
现在假设我已经加载了A而这 1% 恰好是我关心 B 的地方。我们还没有延迟加载,但上一个版本确实给了我们显式加载。惊人的。
context.Entry(A).Collection(a=>a.Bees).Load();
问题似乎是没有办法将附加集合包含在 B 中?我别无选择,只能用 .Include.ThenInclude.ThenInclude.Etc 重新加载 A 吗?
幸运的是你有一个选择。而不是直接调用Load
, 您可以使用Query
方法并应用尽可能多的Include
/ ThenInclude
如你所愿。
对于您的示例,它将是这样的:
context.Entry(A).Collection(a => a.Bees)
.Query()
.Include(b => b.Seas).ThenInclude(c => c.Sigh)...
.Load();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)