实体框架6 SaveChanges导致唯一的约束异常
本文关键字:唯一 约束 异常 框架 SaveChanges 实体 | 更新日期: 2023-09-27 18:12:49
当我尝试在EF上执行SaveChanges()
时,我得到了一个唯一的约束违反。
有两列,ID
和Order
。唯一约束是在这两列上。
我正在更新顺序(交换两个值)。
然而,当我做SaveChanges()
时,我得到一个DBUpdateExcception
说我违反了唯一约束-但我没有!我刚刚交换了顺序。
Name | ID | Order
BH | 49 | 1
JK | 49 | 2
那么在代码中,它现在看起来像这样(我已经在调试器中检查了EF)
Name | ID | Order
BH | 49 | 2
JK | 49 | 1
正如我所说的,当我执行SaveChanges()
时,我得到一个异常。
我不知道我的模型在visual studio 2015中是否有问题(必须设置属性或允许更新的东西?)。在我看来,问题似乎是"它"没有正确地进行更新。
感谢您的帮助!
EntityFramework一次更新一行。因此,通过交换两个对象的Order
值并调用SaveChanges()
,它首先触发如下内容:
UPDATE TABLENAME SET [Order] = 2 WHERE [TABLENAME].[ID] = 49 AND [TABLENAME].[Order] = 1
如果执行此更新,则表中的两行在唯一约束中具有相同的值。