【发布时间】:2016-07-29 16:58:23
【问题描述】:
我需要在单个请求中删除和添加具有相同主键值的实体,有人可以建议我解决方案吗?
以下是给出错误的示例代码:违反主键约束“PK_Table”。无法在对象“dbo.Table”中插入重复键。
context.Set<Entity>().Attach(existingEntityObj);
Entry(existingEntityObj).State = EntityState.Deleted;
context.Set<Entity>().Add(newEntityObj);
context.Entry<Entity>(newEntityObj).State = EntityState.Added;
context.SaveChanges();
假设两个对象(existingEntityObj 和 newEntityObj)在主键属性中具有相同的值。
提前致谢!!
【问题讨论】:
-
您必须删除主键约束,删除您的实体,添加您的实体,然后重新添加主键约束。但是,当 FK 引用它时,您不能删除主键约束。你在做什么听起来是个坏主意。你不能只用新对象的数据修改现有对象吗?
标签: c# entity-framework orm code-first