使用EF更新saving违反了DB惟一性限制
本文关键字:DB 更新 EF saving 使用 | 更新日期: 2023-09-27 18:09:57
我正在使用EF来更新实体。
下面是我的代码: public MamConfiguration_V1 Save(MamConfiguration_V1 item)
{
item.ThrowIfNull("item");
mMaMDBEntities.MamConfiguration_V1.AddObject(item);
mMaMDBEntities.ObjectStateManager.ChangeObjectState(item, System.Data.EntityState.Modified);
mMaMDBEntities.SaveChanges();
return item;
}
然而,通过这种方式,我在DB中得到了一个PK违规错误。
我更喜欢用这种方式(创建一个新的EF实体)并将其标记为
修改后,如何不打破唯一性限制?
如果使用此方法更新现有项,则会收到异常,因为
mMaMDBEntities.MamConfiguration_V1.AddObject(item);
。看起来,使用此代码,您将第二次尝试将项目放入表中。如果我猜对了,你使用这个方法来更新你现有的项目,你只需要删除这一行——EF将根据你对对象字段所做的更改自动更新数据库。