在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指令或程序集引用?)

我包含的命名空間:

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的替代方法是什麼。

一般承認的答案

您可以使用關鍵字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
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因