使用EF更新\保存违反了数据库唯一性限制

时间:2013-04-18 14:25:10

标签: c# sql asp.net-mvc entity-framework

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

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

1 个答案:

答案 0 :(得分:-1)

如果您使用此方法更新现有项目,则由于

而收到异常
  mMaMDBEntities.MamConfiguration_V1.AddObject(item);

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