Entity framework 使用GetAllIncluding在一次调用中获取多个级别
使用ABP存储库模式,我们试图创建一个查询来检索一组实体及其子项和子项的子项 实体X->一对多实体Y->一对多实体Z (以发票>发票项>发票项零件为例) Abp存储库模式提供了使用 结果=_repositoryInvoice.GetAllIncluding(x=>x.InvoiceItem) 有没有一种方法可以使用LINQ将InvoiceItemParts包含在这个1查询中?如果没有,建议用什么方法使用单个调用检索所有子导航属性和所有级别 主要目标是这样,当访问子属性以及这些子属性的子属性时,我们不必多次往返数据库 谢谢Entity framework 使用GetAllIncluding在一次调用中获取多个级别,entity-framework,automapper,Entity Framework,Automapper,使用ABP存储库模式,我们试图创建一个查询来检索一组实体及其子项和子项的子项 实体X->一对多实体Y->一对多实体Z (以发票>发票项>发票项零件为例) Abp存储库模式提供了使用 结果=_repositoryInvoice.GetAllIncluding(x=>x.InvoiceItem) 有没有一种方法可以使用LINQ将InvoiceItemParts包含在这个1查询中?如果没有,建议用什么方法使用单个调用检索所有子导航属性和所有级别 主要目标是这样,当访问子属性以及这些子属性的子属性时,我
jasen决定只创建我自己的自定义存储库,然后直接使用EFCore.Include和.Include。事实证明,AspNetBoilerPlate不支持查询导航属性,这些属性超出了所查询根实体的直接子级 Microsoft提供了一些很好的使用.Include和.的示例,其中包括: 祝你好运 对于
i假设
有方法Include
和thenclude
,您可以使用EF核心标准的相同结构
_repository.GetAll().Include(d => d.Child).ThenInclude(c => c.GrandChild).FirstOrDefault(x => x.Id.Equals(id));
我不知道ABP Repository的情况,但听起来你好像在问关于
dbSetX.Include(x=>x.ItemsY.Select(y=>y.ItemsZ))
EF6或dbSetX.Include(x=>x.ItemsY)。然后包括(y=>y.ItemsZ)
efcore。我是否误解了您的问题?没有这样的方法(包括数量可变的导航属性)。生成的SQL必须完全由模式决定,才能生成EF。如果有实体引用它,您希望(我认为)以某种方式包含一个或多个实体类型,但是EF必须在生成查询时检索数据,而这是不可能的。我没有寻找数量可变的属性,基本上只是想弄清楚在AspNetBoilerPlate中“thenclude”的等价物是什么。非常感谢。