在EF經常在更新模型的時候可能會同時操作一個實體幾次。
其實除了SaveChanges外,其它的幾次基本都是要查詢出一個結果,
例如更新的時候,我們要查一下這個表中有沒有相同的紀錄之類的。
查詢完之后,我們再SaveChanges就會出錯。
怎么辦呢?
查詢的時候我們用這個方法查詢:AsNoTracking()
db.Set<實體模型>() .AsNoTracking() .FirstOrDefault(p => p.x== x) //但這個沒有Find()方法 ,不知道怎么回事。
這個方法返回一個新查詢結果,但返回的實體不會在緩存中。也就是EF查完了就不再跟蹤了。
好了。記錄一下。打完收功!
希望能幫到困惑很久的人們!