0

我正在使用 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;
    }

但是,通过这种方式,我在数据库中得到了 PK 违规错误。

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

修改了,我怎么能不打破唯一性限制?

4

1 回答 1

-1

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

  mMaMDBEntities.MamConfiguration_V1.AddObject(item);

线。使用此代码,您似乎第二次尝试将项目放入表中。如果我猜对了并且您使用此方法更新现有项目,您只需删除此行 - EF 将根据您对对象字段所做的更改自动更新数据库。

于 2013-04-18T14:58:49.517 回答