首页 新闻 搜索 专区 学院

使用spring.net注入dbContext,(Entity framework4.1 )执行更新操作的时候出错

0
悬赏园豆:20 [待解决问题]

提示 ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象 的错误。

如果不用spring注入,直接new的话,没有任何问题。。

用spring注入,删除、添加没有问题,更新就提示上面说的错误。。

求解!!

蜗牛甲的主页 蜗牛甲 | 初学一级 | 园豆:180
提问于:2011-11-12 17:03
< >
分享
所有回答(2)
0

dbContext应该每个请求的时候new一个,如果注入单例的话,会有问题的 呵呵!

Agile.Zhou | 园豆:276 (菜鸟二级) | 2011-11-16 10:23
0

我也碰到这个问题,是这样的。 

if (null != dbset.find(id))

{

  dbset.Entry(item).State = EntityState.Modified;

}  

这样会出现:ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象。   我的解决办法:既然ObjectStateManager 中具有多个同一键的对象,那么我们操作的过程中只让他存在一个这样的对象就行了。

 item = dbset.find(id))

if (null != item)

{

 //item 修改

 dbset.Entry(item).State = EntityState.Modified;

}  

rockyfeng | 园豆:205 (菜鸟二级) | 2012-03-05 11:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册