1. 程式人生 > >EF操作兩個有相同ID的實體報錯:附加型別“...”的實體失敗

EF操作兩個有相同ID的實體報錯:附加型別“...”的實體失敗

        附加型別“...”的實體失敗,因為相同型別的其他實體已具有相同的主鍵值。在使用 "Attach" 方法或者將實體的狀態設定為 "Unchanged" 或 "Modified" 時如果圖形中的任何實體具有衝突鍵值,則可能會發生上述行為。這可能是因為某些實體是新的並且尚未接收資料庫生成的鍵值。在此情況下,使用 "Add" 方法或者 "Added" 實體狀態跟蹤該圖形,然後將非新實體的狀態相應設定為 "Unchanged" 或 "Modified"。

報錯詳情:

      

原因分析:

程式碼:

解決方法:

對於裝置表因為是要儲存修改的值而不是新建再儲存,所以採用先從上下文裡把實體查詢出來.再修改再儲存的方法。

改後的程式碼: