EF 中更新模型的問題,這種錯誤(因為相同類型的其他實體已具有相同的主鍵值。)


在EF經常在更新模型的時候可能會同時操作一個實體幾次。

其實除了SaveChanges外,其它的幾次基本都是要查詢出一個結果,

例如更新的時候,我們要查一下這個表中有沒有相同的紀錄之類的。

查詢完之后,我們再SaveChanges就會出錯。

 

怎么辦呢?

查詢的時候我們用這個方法查詢:AsNoTracking() 

db.Set<實體模型>()
            .AsNoTracking()
            .FirstOrDefault(p => p.x== x)

//但這個沒有Find()方法 ,不知道怎么回事。
 

 

這個方法返回一個新查詢結果,但返回的實體不會在緩存中。也就是EF查完了就不再跟蹤了。

好了。記錄一下。打完收功!

希望能幫到困惑很久的人們!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM