使用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实体)并将其标记为

修改

后,如何不打破唯一性限制?

使用EF更新saving违反了DB惟一性限制

如果使用此方法更新现有项,则会收到异常,因为

  mMaMDBEntities.MamConfiguration_V1.AddObject(item);

。看起来,使用此代码,您将第二次尝试将项目放入表中。如果我猜对了,你使用这个方法来更新你现有的项目,你只需要删除这一行——EF将根据你对对象字段所做的更改自动更新数据库。