语言

EntityFrameworkQueryableExtensions.AsNoTracking<TEntity> 方法

定义

更改跟踪器不会跟踪从 LINQ 查询返回的任何实体。 如果修改实体实例,则更改跟踪器不会检测到此情况,并且 SaveChanges() 不会将这些更改保存到数据库。

public static System.Linq.IQueryable<TEntity> AsNoTracking<TEntity>(this System.Linq.IQueryable<TEntity> source) where TEntity : class;
static member AsNoTracking : System.Linq.IQueryable<'Entity (requires 'Entity : null)> -> System.Linq.IQueryable<'Entity (requires 'Entity : null)> (requires 'Entity : null)
<Extension()>
Public Function AsNoTracking(Of TEntity As Class) (source As IQueryable(Of TEntity)) As IQueryable(Of TEntity)

类型参数

TEntity

要查询的实体的类型。

参数

source
IQueryable<TEntity>

源查询。

返回

IQueryable<TEntity>

上下文不会跟踪结果集的新查询。

例外

source 是 null.

注解

禁用更改跟踪对于只读方案很有用,因为它避免了为每个实体实例设置更改跟踪的开销。 如果要操作实体实例并将这些更改保存到数据库, SaveChanges()则不应禁用更改跟踪。

不会执行标识解析。 如果具有给定键的实体的结果集不同,则它们将是不同的实例。

查询的默认跟踪行为可以控制。QueryTrackingBehavior

有关详细信息和示例,请参阅 EF Core 中的“无跟踪”查询 。

适用于