zoa*_*oaz 28 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);
Run Code Online (Sandbox Code Playgroud)
我的问题是Select在EF Core中无法识别
错误CS1061"Employees"不包含"Select"的定义,也没有扩展方法"Select"接受类型为"Employees"的第一个参数(您是否缺少using指令或程序集引用?)
我包含的命名空间:
using MyProject.Models;
using Microsoft.Data.Entity;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
Run Code Online (Sandbox Code Playgroud)
Select在EF Core中有什么替代方案.
dev*_*ric 59
您可以使用关键字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);
Run Code Online (Sandbox Code Playgroud)
此外, .ThenIninclude 智能感知仅适用于第三级,例如:
_Context.A.Include(a => a.B).ThenInclude(B => B.C).ThenInclude(C => C.D)
Run Code Online (Sandbox Code Playgroud)
该声明的最后部分:
.ThenInclude(C => C.D)
Run Code Online (Sandbox Code Playgroud)
不会显示“D”,所以你必须自己输入D,然后等待一小段时间编译错误就会消失!
| 归档时间: |
|
| 查看次数: |
10353 次 |
| 最近记录: |