剛開始學習使用EF ,做項目時需要查詢數據將數據顯示在datagrid中,使用如下方法:
query是IQueryable的
在一次看別人寫的代碼的時候,發現了AsNoTracking()這個方法,並進行了了解
針對查詢,在一些情況下,我們只需要返回一個只讀的數據就可以,並不會對數據記錄進行任何的修改。這種時候不希望Entity Framework進行不必要的狀態變動跟蹤,
可以使用Entity Framework的AsNoTracking方法來查詢返回不帶變動跟蹤的查詢結果。
由於是無變動跟蹤,所以對返回的數據的沒有進行任何修改,在SaveChanges()時,都不會提交到數據庫中。
上面是使用AsNoTracking()方法,會給我們帶來好的性能
注:使用AsNoTracking需要添加引用命名空間using System.Data.Entity。