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

EF coreTracking与非跟踪查询

EF Core是一个轻量级、跨平台的ORM(对象关系映射)框架,是Entity Framework的核心部分,用于简化开发人员与数据库之间的交互。

EF Core提供了两种查询方式,即跟踪查询(Tracking Query)和非跟踪查询(Non-Tracking Query)。这两种查询方式在使用上有一些差异和适用场景的区别。

  1. EF Core跟踪查询(Tracking Query): 跟踪查询是指在查询数据时,EF Core将返回的数据进行跟踪,即EF Core将会维护返回的实体对象的状态,并且在数据修改后自动保存到数据库中。使用跟踪查询时,可以方便地对查询结果进行修改和更新操作。

跟踪查询的优势:

  • 在查询结果上下文中跟踪实体对象的状态变化,方便修改和更新操作。
  • 支持在查询结果中获取关联实体对象的导航属性。

适用场景:

  • 需要对查询结果进行修改和更新操作时。
  • 需要获取查询结果中关联实体对象的导航属性。

推荐的腾讯云相关产品和产品介绍链接地址: 腾讯云提供了数据库服务TencentDB for MySQL和TencentDB for PostgreSQL,可以与EF Core进行集成,用于存储和管理数据。具体产品介绍和链接如下:

  • TencentDB for MySQL:https://cloud.tencent.com/product/cdb
  • TencentDB for PostgreSQL:https://cloud.tencent.com/product/pg
  1. EF Core非跟踪查询(Non-Tracking Query): 非跟踪查询是指在查询数据时,EF Core不会维护返回的实体对象的状态,也不会将数据的修改自动保存到数据库中。使用非跟踪查询时,返回的实体对象是独立的,对其进行修改不会自动更新到数据库。

非跟踪查询的优势:

  • 查询结果不会被上下文跟踪,避免性能开销和资源消耗。
  • 返回的实体对象是只读的,不会自动保存到数据库。

适用场景:

  • 只需要查询数据而不进行修改操作时。
  • 需要在查询结果中获取大量数据,避免性能开销和资源消耗。

推荐的腾讯云相关产品和产品介绍链接地址: 腾讯云提供了Serverless云函数SCF(Serverless Cloud Function)和对象存储COS(Cloud Object Storage),可以与EF Core进行集成,用于实现无服务器计算和存储服务。具体产品介绍和链接如下:

  • Serverless云函数SCF:https://cloud.tencent.com/product/scf
  • 对象存储COS:https://cloud.tencent.com/product/cos
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

mysql多表查询 浅谈mysql中等值连接等值连接、自连接自连接、内连接外连接问题(一)

* FROM employees; #107条记录 SELECT 2889 / 107 FROM DUAL; SELECT * FROM departments; #27条记录 1.3案例分析问题解决...多表查询分类讲解 分类1:等值连接 vs 等值连接 等值连接 SELECT employees.employee_id, employees.last_name, employees.department_id...练习:查询出公司员工的 last_name,department_name, city 等值连接 SELECT e.last_name, e.salary, j.grade_level FROM employees...#7.2 自连接 VS 自连接 SELECT * FROM employees; #练习:查询员工姓名及其管理者的id和姓名[SQL] SELECT emp.employee_id,...内连接: 合并具有同一列的两个以上的表的行, 结果集中不包含一个表另一个表不匹配的行 外连接: 两个表在连接过程中除了返回满足连接条件的行以外还返回左(或右)表中不满足条件的 行 ,这种连接称为左(或右

3K20

.NET 云原生架构师训练营(模块二 基础巩固 EF Core 查询)--学习笔记

2.4.5 EF Core -- 查询 关联数据加载 客户端服务端运算 跟踪跟踪 复杂查询运算 原生 SQL 查询 全局查询筛选器 关联数据加载 学员和助教都在项目分组中,调整模型,删除 Assistant...客户端服务端运算:https://docs.microsoft.com/zh-cn/ef/core/querying/client-eval 由于 SQL Server 提供程序不了解此方法的实现方式...= _lighterDbContext.Projects.ToList(); 跟踪跟踪 跟踪跟踪:https://docs.microsoft.com/zh-cn/ef/core/querying.../tracking 默认情况下,跟踪返回实体类型的查询。...跟踪查询 var blogs = context.Blogs .AsNoTracking() .ToList(); 还可以在上下文实例级别更改默认跟踪行为: context.ChangeTracker.QueryTrackingBehavior

1.2K11
  • .NET 云原生架构师训练营(模块二 基础巩固 EF Core 查询)--学习笔记

    2.4.5 EF Core -- 查询 关联数据加载 客户端服务端运算 跟踪跟踪 复杂查询运算 原生 SQL 查询 全局查询筛选器 关联数据加载 学员和助教都在项目分组中,调整模型,删除 Assistant...客户端服务端运算:https://docs.microsoft.com/zh-cn/ef/core/querying/client-eval 由于 SQL Server 提供程序不了解此方法的实现方式...= _lighterDbContext.Projects.ToList(); 跟踪跟踪 跟踪跟踪:https://docs.microsoft.com/zh-cn/ef/core/querying.../tracking 默认情况下,跟踪返回实体类型的查询。...跟踪查询 var blogs = context.Blogs .AsNoTracking() .ToList(); 还可以在上下文实例级别更改默认跟踪行为: context.ChangeTracker.QueryTrackingBehavior

    1.2K10

    EF Core 入门

    Entity Framework Core版目前已经更新到了6代,这是一款经过检验的ORM框架。...而EF可以说是很好的诠释了这个理念。 EF可以在不使用任何配置的前提下,自动解析类表之间的映射(具体的映射逻辑与我们手写的ORM工具类一致或相近)。 自动跟踪更改。...在直接使用通过EF获取的元素时,EF会自动跟踪哪些字段发生了变化,当手动调用保存的时候,EF就会把数据回传给数据库。...可以延迟加载需要的数据,外键引用属性、查询结果等 丰富的映射关系,支持一对一,一对多,多对多,甚至继承、单表多实例等 可以使用Linq 进行查询 Core版的可以通过数据库表生成实体类,两种都可以通过实体类生成表...接下来,添加 EF的SQLite包: 在Visual Studio环境下,安装一个三方库可以使用: dotnet add package Microsoft.EntityFrameworkCore.Sqlite

    2.4K10

    Entity Framework Plus: 让 EF Core 开发如虎添翼

    EF Core介绍 Entity Framework (EF) Core 是轻量化、可扩展、开源和跨平台版的常用 Entity Framework 数据访问技术,EF Core 是适用于 .NET 的现代对象数据库映射器...它支持 LINQ 查询、更改跟踪、更新和架构迁移。...EF Core 通过提供程序插件 API SQL Server、Azure SQL 数据库、SQLite、Azure Cosmos DB、MySQL、PostgreSQL 和其他数据库一起使用(微软官方出品...通过提供一系列实用的功能,如批量操作、查询缓存、查询延迟、LINQ动态、审计跟踪等,使得使用 Entity Framework 进行数据库开发变得更加高效和灵活。...审计跟踪:提供审计跟踪功能,允许自动跟踪对实体的更改,并将审计信息保存到数据库中。

    7410

    .NET 性能—Entity Framework Core调优

    正文 1、EF Core框架已经本地缓存机制memorycache,所以我们访问一个接口,二次访问的性能相比首次会提升一大截 2、尽可能的通过主键查询 3、在进行字符串模糊查询时,分为三种情况 //StartsWith...Core会对查询出来的数据进行缓存、跟踪。...跟踪监控造成额外的空间浪费,但能方便更新数据,所以在不涉及修改的情况下(只查询时),我们可以用AsNoTracking()方法来手动关闭跟踪 var result= ProductContext.Products...().ToList(); 原理 默认预先加载(懒加载)时,EF core为我们生成的sql语句为left join语句,查询结果为主表、副表的所有字段;右表数据的字段会存在null。...数据库查询进行笛卡尔积查询,实际查询了4次 拆分查询时,EF Core会生成两个sql语句: 1、单表查询主表product 2、主表product副表productLogs进行inner join,

    33641

    EF 5 中跟踪SQL和缓存数据

    EF4和EF5中需要跟踪执行SQL和缓存数据,微软官方有一个名为EFProviderWrappers的扩展示例非常值得学习,EFProviderWrappers包含EFTracingProvider和...EFCachingProvider,前者用于跟踪EF中增删改查的SQL语句,后者用于将EF查询的结果自动进行缓存,缓存策略过期时间可由开发者自己指定,目前这两个扩展只支持EF4和EF5,因为EF6中微软已提供拦截器...使用LINQ查询数据时,查询通过一系列的层次被传递,所有的查询都通过EntityConnection执行,EntityConnection根据不同的连接字符串驱动不同数据库,比如:SqlClient、SqlServerCE...正是因为EF提供这样的层次体系,所有SQL都经过EntityConnection执行,所以我们可以拦截经过EntityConnection的所有命令,从而进行SQL跟踪和数据缓存,上面提到的EFTracingProvider...缓存和跟踪接口 接下来,针对EF的所有查询,我们都通过上文中封装的ExtendedNorthwindEntities进行,ExtendedNorthwindEntities提供一些接口可供使用。

    1.1K80

    Entity Framework(EF) 5

    在Entity Framework宣布开源后不久Entity Framework(EF) 5就正式发布了,ADO.NET官方博客上EF5 Released列出了EF5的新特性: 枚举类型支持 性能增强,...以下是一些需要注意的地方: 冷查询执行vs.暖查询执行(Cold-vs-Warm query execution)——视图生成这一步(用于从数据库模式到概念模式或从概念模式到数据模式的必要转换)会增加第一次运行查询时的开销...EF仍然没有提供二级缓存,不过我们可以参考一些指南进行实现——如CodePlex上的示例,以及Julia Lerman的文章“Entity FrameworkWindows Azure中的二级缓存”;...可选的无跟踪查询(没有状态跟踪的开销)。...除了EF之外,.NET开发人员还可以选择的一些(开源和商业包括在内)产品有NHibernate 和LightSpeed。

    98270

    02-EF Core笔记之保存数据

    EF Core通过ChangeTracker跟踪需要写入数据库的更改,当需要保存数据时,调用DbContext的SaveChanges方法完成保存。...EF Core采用乐观并发控制来解决并发冲突问题。工作原理:每当在 SaveChanges 期间执行更新或删除操作时,会将数据库上的并发令牌值通过 EF Core 读取的原始值进行比较。...状态断开对象的处理 EF Core判断更新或添加数据是通过ChangeTrancker来进行的,这个操作需要在同一个DbContext中进行,而web应用通常先查询到数据,然后将数据发送到客户端进行相应的操作...例如Blog对象中有多个Post对象,如果从Blog中删除部分Post,则意味着直接移除了Post对象,此时如果是断开连接的情况,则EF Core无法跟踪到Post实体列表的变更,从而导致无法正确的处理删除...一种可用的方案是采用软删除,将数据标记为已删除,此时的操作更新相同。然后在查询数据时,使用查询筛选器,将标记为已删除的数据过滤掉,从而达到删除的效果。

    1.8K40

    Entity Framework Core 简介

    零、EF Core 开发方法 EF Core 只支持两种开发方式 Code First 和 Database First,在 EF Core 2.0 开始不支持数据库模型的可视化设计器以及数据库设计导航...一、EF Core EF6 这里列一下 EF Core 目前所具有的 EF6 的功能 DbContext ; DbSet ; Data Model ; 使用Linq-to-Entities查询 ;...变更跟踪 ; 保存更改 ; 迁移 。...以下是 EF Core 目前所不具有的 EF6 的功能 EDMX /模型的图形可视化 ; 实体数据模型向导 ; ObjectContext API ; 使用Entity SQL查询 ; 自动迁移 ; TPT...EF Core 具有如下新功能 简单的关系配置 批量INSERT,UPDATE和DELETE操作 用于测试的内存提供程序 支持IoC(控制反转) 独特的约束 阴影属性 Alternate keys 全局查询过滤器

    1.9K10

    Entity Framework 简单增删改操作

    前言  在 Entity Framework 简单查询操作 中主要是学习了在Entity Framework中的几种不同模式的查询操作,现在主要来学习一下简单的增加、删除、修改操作。...状态跟踪  在这里我们需要强调一点那就是状态跟踪,对于上面的操作如果我们调用“Attach()”方法对实体进行跟踪或者设置实体的状态那么数据将不会保存到数据库: ?...使用”Attach()”方法进行实体跟踪时会设置实体的状态为“Unchanged”此时实体处于未修改状态,当执行“SaveChange()”方法时EF不会执行修改操作。...相反如果此时设置实体状态为“Modified”则EF执行更新操作。那么既然EF的数据修改操作(增加、更新、删除)是根据实体状态而进行的,那么为什么之前我们的增加操作能正常进行而不用手动修改其状态呢?...原因是EF会自动发现状态改变,在调用下面的方法时状态发现是自动的:   ?

    75231

    .NET Core 3.0 中的新变化

    EF Core 3.0 LINQ 是一项用户钟爱的 .NET 功能,可便于编写数据库查询,而无需离开所选的语言,同时还能利用丰富的类型信息来获取 IntelliSense 和编译时类型检查。...EF Core 部分解决了此问题,具体方法是支持选择可转换为 SQL 的查询部分,再执行内存中剩余的查询。...在 EF Core 3.0 中,我们计划深入更改 LINQ 实现工作原理和测试方式,旨在提高它的可靠性(例如,避免破坏修补程序版本中的查询);让它能够将更多表达式正确转换为 SQL;在更多情况下生成高效查询...此提供程序将针对 Cosmos DB 中的 SQL API 启用大部分 EF Core 功能,如自动更改跟踪、LINQ 和值转换。...我们计划在 EF Core 3.0 中添加的其他功能包括,属性包实体(将数据存储在索引属性(而不是常规属性)中的实体);能够将数据库视图反向工程为查询类型;以及新 C# 8.0 功能集成,如 IAsyncEnumerable

    4.9K10

    盘点 .NET 比较流行的开源的ORM框架

    初期开发过程中吸取了NBearMySoft的一些精华并加入新思想,之后参考EF Lambda语法进行大量扩展。 经过数十个版本的更新迭代发布全新v2.0版本,支持动态列/表、分库/分表等。...查询接口类似于 LINQ。您可以使用 Chloe.ORM 通过 lambda 查询 LINQ 之类的数据并执行任何操作(查询 | 组查询 | 聚合查询 | 插入 | 批量更新 | 批量删除)。...EF提供变更跟踪、唯一性约束、惰性加载、查询事物等。 开发人员使用Linq语言,对数据库操作如同操作object对象一样省事。 EF有三种使用场景: 1、从数据库生成Class。...没有更改跟踪,因此您必须自己进行管理,但从积极的方面来说,您可以获得更多控制权并更快地访问您的数据。 换句话说LINQ to DB 是类型安全的 SQL。...(又名异步)(V6) 严格未修饰的 POCO 或归属的几乎 POCO 一起使用。 易于配置,包括开箱即用的流畅配置。

    4K41
    领券