ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象...
生活随笔
收集整理的這篇文章主要介紹了
ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象...
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在使用EF更新數(shù)據(jù)的時(shí)候,報(bào)如下錯(cuò):
ObjectStateManager 中已存在具有同一鍵的對(duì)象。ObjectStateManager 無法跟蹤具有相同鍵的多個(gè)對(duì)象。
原因是:在EF上上下文中不允許存在2個(gè)具有相同鍵的實(shí)體。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 //如果不在當(dāng)前上下文追蹤 entry.State = EntityState.Modified; } db.SaveChanges(); return item; catch (Exception) throw; }轉(zhuǎn)載于:https://www.cnblogs.com/tianboblog/p/5106519.html
總結(jié)
以上是生活随笔為你收集整理的ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Jquery学习笔记:获取jquery对
- 下一篇: var和dynamic的区别及如何正确使