EF ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象
2013-09-11 20:56
585 查看
今天编码过程中遇到这个问题,用EF更新数据库,将组织好的数据传递到ef的上下文中,本以为附加上去更新,一切就ok了,不过事实证明没这么顺利
将BaseDal中实现接口Update的方法变成虚方法,然后让每一个子类去重写这个方法(如下);
--------------------------------------------- ObjectStateManager中已存在具有同一键的对象。ObjectStateManager无法跟踪具有相同键的多个对象 ---------------------------------------------看了很多博文,总结原因是当前上下文中已经包含了这一条记录,而且是出于被跟踪状态,所以不能再附加具有相同键的对象
很多人都遇到了这个问题,各有各的解决办法,在这个链接博文的启发下,因为需求不同故做了一点小小修改;山人自有妙计
找到了一个相似的解决方案
/article/5102516.html
记录一下我自己的情况的解决方案:
//update
publicvirtualboolUpdate(Tentity)
{
//子类重写
returntrue;
}
将BaseDal中实现接口Update的方法变成虚方法,然后让每一个子类去重写这个方法(如下);
publicoverrideboolUpdate(LYMXlymx)首先通过lymx的逐渐,取得上下文中的这一条记录,将状态修改成“System.Data.EntityState.Detached”而后组织数据,附加到上下文,进行更新.
{
varentity=datamodelcontainer.Set<LYMX>().Find(lymx.ZSGBH);
if(entity!=null)
{
datamodelcontainer.Entry<LYMX>(entity).State=System.Data.EntityState.Detached;//这个是在同一个上下文能修改的关键
}
//组织需要的数据
entity.RCBABH=lymx.RCBABH;
entity.ZSZT=lymx.ZSZT;
entity.GXSJ=DateTime.Now;datamodelcontainer.Set<LYMX>().Attach(entity);
datamodelcontainer.Entry(entity).State=EntityState.Modified;
returntrue;//datamodelcontainer.SaveChanges()>0;
}
相关文章推荐
- EF ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象
- ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象
- “ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象。”解决方法
- ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象
- 针对【ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象。】的解决方案
- ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象
- ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象
- objectstatemanager 中已存在具有同一键的对象。objectstatemanager 无法跟踪具有相同键的多个对象。
- 调试Bug:ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象。
- objectstatemanager 中已存在具有同一键的对象。objectstatemanager 无法跟踪具有相同键的多个对象。
- MVC EF ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象。
- EF ObjectStateManager无法跟踪具有相同键的多个对象
- EF ASP.NET MVC 更新出错:ObjectStateManager中已存在具有同一键的对象
- Entity Framework5.0运行时错误ObjectStateManager 中已存在具有同一键的对象
- Entity Framework中编辑时错误ObjectStateManager 中已存在具有同一键的对象
- Entity Framework中编辑时错误ObjectStateManager 中已存在具有同一键的对象
- Entity Framework中编辑时错误ObjectStateManager 中已存在具有同一键的对象
- ASP.NET MVC3更新出错:ObjectStateManager中已存在具有同一键的对象
- Entity Framework中编辑时错误ObjectStateManager 中已存在具有同一键的对象
- EF Linq To Entities ObjectManager 已存在相同键无法再Attach的解决方案