首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

创建EF Core Include().ThenInclude() like函数?

EF Core是Entity Framework Core的简称,是一个用于.NET应用程序的对象关系映射(ORM)框架。它提供了一种将数据库对象与.NET对象进行交互的简单方式。

在EF Core中,Include()和ThenInclude()函数用于加载实体对象的相关数据。它们是用于Eager Loading(贪婪加载)的方法,通过在查询中指定导航属性,一次性加载相关数据,避免了在后续访问相关数据时产生的额外查询。

Include()函数用于加载主实体对象及其关联的导航属性。例如,假设我们有一个Blog类,并且每个Blog都有多个Post。我们可以使用Include()函数来加载Blog及其相关的Post:

代码语言:txt
复制
var blog = context.Blogs
    .Include(b => b.Posts)
    .FirstOrDefault();

ThenInclude()函数用于加载与上一级导航属性相关联的导航属性。继续上面的例子,如果我们还想加载每个Post的作者信息,可以使用ThenInclude()函数:

代码语言:txt
复制
var blog = context.Blogs
    .Include(b => b.Posts)
        .ThenInclude(p => p.Author)
    .FirstOrDefault();

以上代码将加载Blog及其相关的Post,并且每个Post还会加载其对应的Author。

EF Core的Include()和ThenInclude()函数在查询数据时非常有用,可以减少数据库查询的次数,提高性能。这对于需要加载多个相关实体对象的场景特别有效。

在腾讯云的云计算产品中,与EF Core类似的是TencentDB for SQL Server。它是腾讯云提供的托管式SQL Server数据库服务,提供了高可靠、高性能的关系型数据库解决方案。您可以使用TencentDB for SQL Server来存储和管理应用程序的数据,并通过EF Core来操作和查询这些数据。

TencentDB for SQL Server产品介绍链接:https://cloud.tencent.com/product/tencentdb-sqlserver

以上是对创建EF Core Include().ThenInclude() like函数的完善答案,包括了概念、使用方法、优势以及推荐的腾讯云相关产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

01-EF Core笔记之创建模型

使用EF Core的第一步是创建数据模型,模型建的好,下班走的早。EF Core本身已经设置了一系列约定来帮我们快速的创建模型,例如表名、主键字段等,毕竟约定大于配置嘛。...如果你想改变默认值,很简单,EF Core提供了Fluent API或Data Annotations两种方式允许我们定制数据模型。...):基类和子类不在同一个表中,子类中包含基类的所有字段,目前EF Core不支持该模式 EF Core仅支持TPH模式,基类和子类数据将存储在同一个表中。...这里只是为了演示,真实场景中,EF Core已经提供了枚举到字符串的转换器,我们只需要直接使用即可。...EF Core支持实体具有有参的构造函数,默认情况下,EF Core使用无参构造函数来实例化实体对象,如果发现实体类型具有有参的构造函数,则优先使用有参的构造函数

3.1K20
  • 张高兴的 Entity Framework Core 即学即用:(一)创建第一个 EF Core 应用

    《张高兴的 Entity Framework Core 即学即用》系列博客共分为 4 个部分: 第一部分将从 0 开始创建一个 EF Core 应用,介绍了使用 Database First 的方式以及手工的方式生成实体类...张高兴 2022年3月22日 ---- 本文将使用 .NET 6 创建一个控制台程序,从 0 开始,学习 EF Core 的使用。...创建一个 EF Core 应用 项目地址:https://github.com/ZhangGaoxing/ef-core-demo 项目结构 创建一个控制台应用和类库,项目结构如下: Pandemic...之后打开数据库上下文 PandemicContext.cs,会发现其中还是有些许的问题,比如创建时间字段 created_dt 的默认值为 PostgreSQL 中的 now() 函数,但 EF 并没有将其识别出来...手动创建实体类 下面将手动编写两个实体类 Hospital.cs 和 Doctor.cs,以熟悉 EF Core Attribute 是如何将数据库表和实体类之间建立联系的。

    2.5K10

    Entity Framework Core 2.0 入门

    该文分以下几点: 创建Model和数据库 使用Model与数据库交互 查询和保存关联数据 EF Core支持情况 EF Core的数据库Providers: 此外还即将支持CosmosDB和 Oracle...EF Core迁移: 简单的来说就是 Model变化 --> 创建migration文件 --> 应用Migration到数据库或生成执行脚本....EF.Functions.Like 这个方法是新方法, 就像是Sql语句里面的Like一样, 或者字符串的Contains方法: 这个感觉更像Sql语句, 输出到Console的Sql语句如下: 这里还要谈的是...SQL语句不可以包含关联的导航属性, 但是可以配合Include使用以达到该效果(https://docs.microsoft.com/en-us/ef/core/querying/raw-sql#including-related-data...(FromSql也可以Include). 预加载子表的子表: 可以使用ThenInclude方法, 这个可以老版本ef没有的.

    3.2K80

    Entity Framework Core 2.0 入门

    该文分以下几点: 创建Model和数据库 使用Model与数据库交互 查询和保存关联数据 EF Core支持情况 EF Core的数据库Providers: 此外还即将支持CosmosDB和 Oracle...EF Core迁移: 简单的来说就是 Model变化 --> 创建migration文件 --> 应用Migration到数据库或生成执行脚本....EF.Functions.Like 这个方法是新方法, 就像是Sql语句里面的Like一样, 或者字符串的Contains方法: 这个感觉更像Sql语句, 输出到Console的Sql语句如下: 这里还要谈的是...SQL语句不可以包含关联的导航属性, 但是可以配合Include使用以达到该效果(https://docs.microsoft.com/en-us/ef/core/querying/raw-sql#including-related-data...(FromSql也可以Include). 预加载子表的子表: 可以使用ThenInclude方法, 这个可以老版本ef没有的.

    3.5K140

    Entity Framework Core 2.0 新特性

    (在本例中为用户定义的函数),但在方法注册期间可以覆盖名称和模式 目前只支持标量功能 必须自行在数据库中创建映射函数EF Core迁移不会对其进行创建 2.性能提升方面 2.1DbContext连接池...在ASP.NET Core程序中我们使用EF Core一般都是将自定义DbContext类型注册到依赖注入系统中,然后通过控制器中的构造函数参数获取该类型的实例。...虽然EF Core通常可以根据查询表达式的散列表示自动编译和缓存查询,但这种机制可以通过绕过哈希计算和高速缓存查找来获得小的性能增益,从而允许应用程序使用已经通过调用委托编译了查询。...() 添加了EF.Functions属性(注意,这里应该是可以扩展的,添加更多的数据库方法),EF Core可以使用它们来定义映射到数据库函数或操作符的方法,以便可以在LINQ查询中调用它们。...这样一个方法的第一个例子是Like(): var aCustomers = from c in context.Customers where EF.Functions.Like(c.Name

    3.9K90

    一步步学习EF Core(3.EF Core2.0路线图)

    EF.Functions.Like()(#2850) - 允许将通配符的字符串匹配转换为SQL或在内存中进行匹配。...然后,此过滤器将适用于所有查询,包括贪婪加载(即Include())。 上下文池(#6923) - 通过使DbContext实例可以重用而不是始终从头开始创建,从而提高性能。(重要!!!重要!!!...生命周期挂钩(#626) - 包括创建实体(ObjectMaterialized从EF6.x),数据库命令拦截,连接打开时运行附加命令的事件。...原来考虑加入,但是至今没有加入计划的任务: 基于ODBC的提供程序(#7432) - 这将允许为具有ODBC提供程序的数据库(但可能没有特定于数据库的ADO.NET提供程序)创建一个EF Core提供程序...,是不是有种拨开云雾见太阳的感觉.. 2.EF.Functions.Like()(#2850) - 这个目前是只加入了like,后期还要加入更多的数据库函数.大大增强了代码可读性和效率

    3.1K90

    .NET 性能—Entity Framework Core调优

    按下硬件、网络不提,我们单表从程序层面对系统的性能进行优化,翻来覆去无外乎三个方面 缓存 异步 sql 本片文章,我们针对.NET Core Web项目的EF Core框架进行性能优化。...正文 1、EF Core框架已经本地缓存机制memorycache,所以我们访问一个接口,二次访问的性能相比首次会提升一大截 2、尽可能的通过主键查询 3、在进行字符串模糊查询时,分为三种情况 //StartsWith...().ToList(); 原理 默认预先加载(懒加载)时,EF core为我们生成的sql语句为left join语句,查询结果为主表、副表的所有字段;右表数据的字段会存在null。...数据库查询进行笛卡尔积查询,实际查询了4次 拆分查询时,EF Core会生成两个sql语句: 1、单表查询主表product 2、主表product与副表productLogs进行inner join,...即不使用EF Core本身生成的sql var result= ProductContext.Product.FromSqlRaw("select * from product").ToList();

    34941

    WPF 运行时迁移 EF Core 数据库

    在客户端开发,可以使用 .NET Core 3.0 开发 WPF 程序,可以使用 EF Core 连接数据库。...客户端的数据库使用 SQLite 在不同的版本需要在客户端运行做数据库迁移升级数据库 在 WPF 使用 EF Core 可以安装下面的库 <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson...dotnet ef migrations add Lindexi 执行上面代码可以看到在项目里面添加了 Migrations 文件夹,这个文件夹里面包含数据库的迁移代码 在主函数可以使用下面代码创建数据库...migrations add 版本名 此时建议创建迁移代码,在软件运行的时候执行 Migrate 函数将会自动升级数据库 如果数据库是需要升级的,那么请使用 Database.Migrate 函数创建数据库...那么可能是在调用 Migrate 等方法之前没有先调用 dotnet ef migrations 创建迁移类

    63110

    一步步学习EF Core(2.事务与日志)

    前言 上节我们留了一个问题,为什么EF Core中,我们加载班级,数据并不会出来 其实答案很简单,~ 因为在EF Core1.1.2 中我们在EF6.0+中用到的的延迟加载功能并没有被加入,不过在EF...我们也可以通过贪婪加载来获取,修改查询代码如下: public IActionResult ListView() { return View(_context.UserTable.Include...下面我们开始今天的内容 事务 关于EF Core的事务,其实与EF 6.x几乎一样,代码如下: using (var tran = _context.Database.BeginTransaction...下面我们来讲一下关于EF Core中的日志 日志 我们知道,在ASP.NET Core中,大量的使用了IOC的手法来注入我们所需要的类. EF Core其实也一样,....首先我们需要创建一个EF日志类,继承Microsoft.Extensions.Logging.ILogger 如下: private class EFLogger : ILogger {

    1.5K90

    WPF 运行时迁移 EF Core 数据库

    在客户端开发,可以使用 .NET Core 3.0 开发 WPF 程序,可以使用 EF Core 连接数据库。...客户端的数据库使用 SQLite 在不同的版本需要在客户端运行做数据库迁移升级数据库 在 WPF 使用 EF Core 可以安装下面的库 <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson...使用命令行进行数据库迁移,数据库迁移就是创建数据库相关代码,在第一次进行迁移将会自动创建代码用于创建数据库 dotnet ef migrations add 版本名 上面代码的版本名可以随意命名,如我是这样写...dotnet ef migrations add Lindexi 执行上面代码可以看到在项目里面添加了 Migrations 文件夹,这个文件夹里面包含数据库的迁移代码 在主函数可以使用下面代码创建数据库...migrations add 版本名 此时建议创建迁移代码,在软件运行的时候执行 Migrate 函数将会自动升级数据库 如果数据库是需要升级的,那么请使用 Database.Migrate 函数创建数据库

    1.2K40
    领券