gpt4 book ai didi

c# - Entity Framework : Remove and Add entities with same key in a single request

转载 作者:太空狗 更新时间:2023-10-29 21:26:42 27 4
gpt4 key购买 nike

我需要在单个请求中删除和添加具有相同主键值的实体,有人可以建议我解决方案吗?

下面是我给出错误的示例代码:违反 PRIMARY KEY 约束 '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)在主键属性中具有相同的值。

提前致谢!!

最佳答案

您需要执行两次 SaveChanges() 调用才能完成这项工作。这里的问题是,虽然看起来您是先删除记录然后添加新记录,但框架实际上是先进行插入。

原因是因为 Entity Framework 没有让您对操作发生的顺序进行精细控制。所以您最好的选择是将两者包装在单独的 TransactionScope 中,这样您就可以控制正在发生的各个事务.

您可以在此处阅读更多信息:https://blogs.msdn.microsoft.com/alexj/2009/01/11/savechangesfalse/

关于c# - Entity Framework : Remove and Add entities with same key in a single request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38663961/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com