猿问

linq to entities 取得一条记录后并修改,无法进行添加操作。

由于需要在更新一条记录之前,取得原记录并修改日期添加回数据库(相当于备份)

取得原来的记录

objPrice = _DbHouse.Price
                .Where(p => p.AutoId == 1)
                .FirstOrDefault();

修改一下日期

objPrice .PostDate = DateTime.Now;

添加(相当于备份) 但是这里出现问题了

ObjectStateManager 中已存在具有同一键的对象。现有对象处于 Modified 状态。只有在该对象处于 added 状态后,才能再次将它添加到 ObjectStateManager 中。 

请问怎么解决?是否要创建多一个实体,除<实体键>外的值都赋值到新的实体,然后添加?但是我的实体类有很多属性… 是否还有其他办法?

_DbHouse.AddToPrice(objPrice);

继续修改 objPrice 其他属性值, 保存更新.

_DbHouse.SaveChanges();


人到中年有点甜
浏览 601回答 2
2回答

杨__羊羊

不用AddTo直接修改后保存即可

白衣染霜花

要改的话得把你设置的主键给修改掉才行啊,相应EntityKey也要改了,这样才不会造成冲突
随时随地看视频慕课网APP
我要回答