Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 使用GetAllIncluding在一次调用中获取多个级别_Entity Framework_Automapper - Fatal编程技术网

Entity framework 使用GetAllIncluding在一次调用中获取多个级别

Entity framework 使用GetAllIncluding在一次调用中获取多个级别,entity-framework,automapper,Entity Framework,Automapper,使用ABP存储库模式,我们试图创建一个查询来检索一组实体及其子项和子项的子项 实体X->一对多实体Y->一对多实体Z (以发票>发票项>发票项零件为例) Abp存储库模式提供了使用 结果=_repositoryInvoice.GetAllIncluding(x=>x.InvoiceItem) 有没有一种方法可以使用LINQ将InvoiceItemParts包含在这个1查询中?如果没有,建议用什么方法使用单个调用检索所有子导航属性和所有级别 主要目标是这样,当访问子属性以及这些子属性的子属性时,我

使用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”的等价物是什么。非常感谢。