在Entity Framework Core中选择多个嵌套级别的子表

entity-framework-core

我想使用预先加载在Entity Framework Core中获得多个嵌套级别的子表。我不认为延迟加载已经实现。

我找到了EF6的答案

var company = context.Companies
                 .Include(co => co.Employees.Select(emp => emp.Employee_Car))
                 .Include(co => co.Employees.Select(emp => emp.Employee_Country))
                 .FirstOrDefault(co => co.companyID == companyID);

我的问题是在EF Core中无法识别Select

错误CS1061“Employees”不包含“Select”的定义,也没有扩展方法“Select”接受类型为“Employees”的第一个参数(您是否缺少using指令或程序集引用?)

我包含的命名空间:

using MyProject.Models;
using Microsoft.Data.Entity;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

在EF Core中Select的替代方法是什么。

一般承认的答案

您可以使用关键字ThenInclude

例如

var company = context.Companies
             .Include(co => co.Employees).ThenInclude(emp => emp.Employee_Car)
             .Include(co => co.Employees).ThenInclude(emp => emp.Employee_Country)
             .FirstOrDefault(co => co.companyID == companyID);


许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因