ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象...
生活随笔
收集整理的這篇文章主要介紹了
ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象...
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在使用EF更新數(shù)據的時候,報如下錯:
ObjectStateManager 中已存在具有同一鍵的對象。ObjectStateManager 無法跟蹤具有相同鍵的多個對象。
原因是:在EF上上下文中不允許存在2個具有相同鍵的實體。Update部分修改如下:
?
public Product Update(Product item) try if (item == null) throw new ArgumentException("Product不能為null"); var entry = db.Entry(item); { var set = db.Set<Product>(); Product attachedProduct = set.Local.SingleOrDefault(p => p.Id == item.Id); if (attachedProduct != null) var attachedEntry = db.Entry(attachedProduct); attachedEntry.CurrentValues.SetValues(item); else //如果不在當前上下文追蹤 entry.State = EntityState.Modified; } db.SaveChanges(); return item; catch (Exception) throw; }轉載于:https://www.cnblogs.com/tianboblog/p/5106519.html
總結
以上是生活随笔為你收集整理的ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Jquery学习笔记:获取jquery对
- 下一篇: var和dynamic的区别及如何正确使