使用ABP存储库模式,我们试图创建一个查询来检索一组实体以及它们的子代和子代子代
实体X->一对多的实体Y->一对多的实体Z
(例如,以Invoice> InvoiceItem> InvoiceItemParts为例)
Abp存储库模式可使用
检索至少一组子级结果= _repositoryInvoice.GetAllIn included(x => x.InvoiceItem)
有没有一种方法可以使用LINQ在此1个查询中包括InvoiceItemParts?如果没有,建议使用一次调用来检索所有子导航属性和所有级别的推荐方法。
主要目标是做到这一点,因此在访问子属性以及这些子级的子级属性时,我们不必多次往返数据库。
谢谢 杰森
答案 0 :(得分:0)
决定只创建我自己的自定义存储库,并直接使用EFCore .Include和.ThenInclude。事实证明,AspNetBoilerPlate除了查询要查询的根实体的直接子级外,不支持查询导航属性。
Microsoft提供了一些使用.Include和.ThenInclude的出色示例:
https://docs.microsoft.com/en-us/ef/core/querying/related-data
祝你好运!
答案 1 :(得分:0)
IRepository<>
有 Include
和 ThenInclude
方法,您可以在其中使用与 EF Core 标准相同的结构。
_repository.GetAll().Include(d => d.Child).ThenInclude(c => c.GrandChild).FirstOrDefault(x => x.Id.Equals(id));