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>

內容不會追蹤結果集的新查詢。

例外狀況

sourcenull

備註

停用變更追蹤對於唯讀案例很有用,因為它可避免為每個實體實例設定變更追蹤的額外負荷。 如果您想要操作實體實例,並使用 將那些變更保存到資料庫 SaveChanges() ,則不應該停用變更追蹤。

將不會執行身分識別解析。 如果具有指定索引鍵的實體在結果集中有不同的結果,則它們會是不同的實例。

查詢的預設追蹤行為可由 控制 QueryTrackingBehavior

如需詳細資訊和範例 ,請參閱 EF Core 中的無追蹤查詢

適用於