使用EF进行更新\保存违反了DB uniquness限制

我正在使用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违规erorr。

我更喜欢使用这种方式(创建一个新的EF实体)并将其标记为

修改后,我怎能不打破单一性限制?

如果您使用此方法更新现有项目,则会因为此而收到exception

  mMaMDBEntities.MamConfiguration_V1.AddObject(item); 

线。 看起来这个代码你试图把这个项目第二次放到你的表中。 如果我猜对了,并且您使用此方法更新现有项目,则应该删除此行 – EF将根据您对对象字段所做的更改自动更新数据库。