我嘗試使用EF 插入時遇到問題。這裏的情況:實體框架:插入時出錯
- 我做了一個正常插入時,我創建了其中一個PK收到
MAX
函數的返回從SQL - 然後,我已經刪除從數據庫中此行沒有EF
- 最後一個新的註冊表,我試圖插入一個新的註冊表與EF,像我一樣的步驟1
我再從Visual Studio中得到這個消息:
對數據庫的更改已成功提交,但更新對象上下文時發生錯誤。 ObjectContext可能處於不一致的狀態。內部異常消息:由於對象的鍵值與ObjectStateManager中的另一個對象衝突,因此AcceptChanges無法繼續。在調用AcceptChanges前,請確保鍵值是唯一的
爲了說明我的問題,我製作了this small video。
我能做些什麼來解決這個問題?
如果您在第2步和第3步之間停止程序並重新啓動,會發生什麼情況? – 2015-03-30 19:50:38
在這種情況下,工作得很好 – 2015-03-30 20:11:36
實體框架在加載它們時會在內存中保存實體的副本。因此,如果實體已經加載並且您刪除數據庫中的一行,則內存中仍有一個副本。現在當你嘗試插入一個實體時,EF會發現已經有一個存在於內存中的相同鍵的對象(即使它已經在數據庫中被刪除),並且會引發錯誤。 – 2015-03-31 00:27:47