c# - EF Core - 我们可以在包含的项目列表中调用 Include 吗?

标签 c# .net-core ef-core-2.2

我有这个问题:

var orders1 = (from header in _context.SalesOrder.Include(nameof(SalesOrder.SalesOrderItem))
                                                    .Include(nameof(SalesOrder.Erp))
                                                    .Include(nameof(SalesOrder.OrderStatus))
                join orgNumber in _context.OrganizationNumber on header.CustomerNumber equals orgNumber.Number
                join userOrg in _context.UserOrganization on orgNumber.OrganizationId equals userOrg.OrganizationId
                where userOrg.UserId == userId && !header.Deleted && !orgNumber.Deleted && !userOrg.Deleted
                        && (header.OrderNumber == sopoNumber || header.CustomerPoNumber == sopoNumber)
                select GetSalesOrderModel(header)).AsNoTracking().ToList();

主表 SalesOrderSalesOrderItem 具有一对多关系。并且 SalesOrderItem 具有到 OrderStatus 表的外键,就像 SalesOrder 一样。但我不确定如何将 Include 添加到已包含 SalesOrderItem 的列表中。是否可以直接在查询中添加它?当我填充模型对象时,我可以在事后完成它,但我想看看我是否可以一次性完成所有这些。

最佳答案

所以这是另一件与答案完全无关的事情,但即便如此,我还是将它发布在这里,供那些在 include 和 include 中苦苦挣扎的人

在 EFCore 中 include(x=>x.Object).ThenInclude(y=>y.Subobject) 也很好用,但是 vs intellisence doset 把它捡起来了

因此,您可以使用 .Include(x=>x.SalesOrderItem) 而不是使用 .Include(nameof(SalesOrder.SalesOrderItem))

回到你的问题

下面是示例代码

 vmExecutionRepo.FilteredGet().Include(x => x.ProjectToProcess).Include(z => z.ProjectToProcess.Process)
            .Include(y => y.ProjectToProcess.Project)
            .Include(a => a.ProjectToProcess.Project.BotToWorkQueue).ThenInclude(v => v.BotToWorkQueueItem)

你也可以尝试这样的东西它应该工作

关于c# - EF Core - 我们可以在包含的项目列表中调用 Include 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57086477/

相关文章:

c# - C# VM 与 JVM 有何不同?

c# - 如何在 c# 中查看对服务引用的传入响应的完整 SOAP 响应(包括 header )?

c# - 使用 C# Substring() 方法避免异常?

c# - .NET Core 中是否弃用了 ApiController

asp.net-core - 如何到达openiddict授权服务器的注册页面?

具有 EventFlow 配置的 ASP.NET Core 2

.net-core - EF Core 中使用多个请求而不是一个请求

.net-core - EF Core 总是在添加迁移时创建 .Annotation ("SqlServer:Identity", "1, 1")

c# - 我能以某种方式表示 WPF 中 DataGrid 中的列表列表吗

c# - 尝试向表中添加行时无法将 Int32 转换为 null