当前位置: 首页 > 知识库问答 >
问题:

在实体框架核心中选择子表的多个嵌套级别

牧献
2023-03-14

我想使用即时加载在实体框架核心中获得多个嵌套级别的子表。我认为延迟加载还没有实现。

我找到了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中无法识别选择

错误CS1061“雇员”不包含“选择”的定义,并且找不到接受“雇员”类型的第一个参数的扩展方法“选择”(您是否缺少使用指令或程序集引用?)

我包含的命名空间:

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

EF Core中的选择选项是什么。

共有2个答案

庄实
2023-03-14

此外。然后,Include intellisense for仅适用于第三级,例如:

_Context.A.Include(a => a.B).ThenInclude(B => B.C).ThenInclude(C => C.D)

该声明的最后一部分:

 .ThenInclude(C => C.D)

不会显示“D”,因此您必须自己键入D,然后等待一段短时间,以使编译错误消失!

江温书
2023-03-14

您可以使用关键字,然后使用include

例如。

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);

 类似资料:
  • 我有一个简单的问题,但似乎找不到解决的办法。我使用的是EntityFramework核心版本2.0.1,希望在默认情况下加载所有实体。 示例: 但当我加载订单实体时,相关实体Customer及其内部地址为null 我所尝试的: 尝试升级到版本2.1并使用LazyLoadingProxies设置为false 这只是一个例子,我有多个嵌套级别的实体,我想在通用存储库中加载嵌套的相关数据,因此不能使用I

  • 我只能访问ICollection本身(listB)的属性,而不能访问其中包含的B对象的属性,这样我就可以在其中包含C对象。 我设法手动完成这一操作(这比我希望的要详细得多),分别加载对象并在其中包含我想要的内容,然后才将它们添加到a的列表中。然而,在我的现实生活中,我想在下面的级别中包含的属性也是用于集合的,所以这变得越来越不实用。有没有更简单、更优雅的方法呢?

  • 我试图使用实体框架核心从我的表中检索一行。这似乎很简单,但我无法让它工作。 我可以通过使用获得列表 _上下文。国家。ToList(); 这给了我表格中国家的完整列表。现在我只需要得到一个与ID匹配的国家。如何做到这一点,因为EF核心中缺少Find()。我们可以选择在哪里吗。谁能帮我理解一下语法吗。 我的国家/地区模型如下所示 公共部分类COUNTRY{public string COUNTRYID

  • 我有一个ASP MVC.NET核心(C#)项目,由于业务原因,SQL表不能有外键,因此,EF模型不映射关系(Entity.HasMany...)。 假设EF为实体生成一个模型,为生成一个模型。我想知道他们两个之间的关系。一个有多个并且一个属于一个。该任务在数据库中有项目Id(但请记住,它没有设置为FK)。 现在,我想通过to Entity获得一个项目列表,同时获得每个项目的任务列表。我通过创建一个

  • 问题内容: 我已经制作了一个简单的Entity Framework ASP Core Application,它可以工作,但是我不知道为什么: 我做了这样的上下文: 我有两个表,像这样的模型: 有趣的是,当我运行我的应用程序时,它实际上可以拾取数据。似乎很奇怪,因为我没有指定任何表映射。我假设这只是自动映射,因为指定的表具有相同的名称。 我的问题是: 如果我不希望模型名称与数据库完全相同,该如何指

  • 我有一个像下面这样的场景。 假设有三个嵌套实体。并且所有都有几个嵌套的实体。 但是在选择时,它选择的是整个嵌套实体树。而我想取一个特定的分支。假设只提取和的所有子实体,留下和,那么我不确定如何做到这一点。随着spring,jpa将所有嵌套对象带回给我。 我正在使用下面的集合映射。 我打电话给你 它获取所有嵌套映射的实体列表,而我只需要和它的嵌套对象列表。 任何帮助都将不胜感激。