gpt4 book ai didi

c# - 更新操作违反唯一约束

转载 作者:行者123 更新时间:2023-11-30 18:16:24 25 4
gpt4 key购买 nike

我需要在我的Entity Framework 应用程序中实现“shift by year”操作。

为了简化事情,假设我有一个实体/表,它有一个到其他表的外键 FK 和一个 YEAR (int, int)。用户可能会将实体年份转移到 future ,所以我需要复制从 2017 年到 2018 年等的数据。

数据库中有一个限制,即 (FK, YEAR) 对必须唯一

当我在内存中执行“转换”并使用 SaveChanges 将更改发送到数据库时,我从数据库收到一条错误消息,指出我违反了唯一约束。我想它试图逐行执行更新,因此违规。

如果我按年份降序对集合进行排序(因此,如果逐行发送,则不会发生重复),同样的错误也会发生。

我的解决方法是删除旧数据并插入新数据,但我认为可能有更清洁的解决方案...

最佳答案

我修改后通过倒序逐项保存的方式解决了这个问题。运行这么多的 SaveChanges 不是很干净,但是整个过程相当复杂并且它使用事务,所以这不是什么大问题。

我不得不做一些更多的改变,因为用户可以将年份转移到过去或 future ,在这种情况下我必须/不能颠倒顺序,但为了简化这个问题,假设如果我 < strong>反转顺序并逐项保存

关于c# - 更新操作违反唯一约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46668092/

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