自增ID相同时报错: Database operation expected to affect 1 row(s) but actually affected 2 row(s)...
数据库操作预计会影响 1 行,但实际上影响了 2 行。 自加载实体以来,数据可能已被修改或删除。 有关理解和处理乐观并发异常的信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=527962。
项目场景:
使用EF进行数据修改并保存_dbContext.SaveChanges();的时候出现错误
问题描述:
在EF里面进行修改的时候出现错误,报错:中文意思(数据库操作预计会影响 1 行,但实际上影响了 2 行。 自加载实体以来,数据可能已被修改或删除。 有关理解和处理乐观并发异常的信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=527962。)在网上搜索了许多都没找到原因。并且添加没有问题!
原因分析:
因为里面新增的数据再修改没有问题,但是之前的历史数据修改却报错,想到是数据问题,吧正确数据和错误数据对了一遍,么有发现什么问题。然后就开始想是否为触发器的原因,还有它的一些约束,但是发现就算吧触发器删除掉也是一样有问题。非常纳闷。这时候有个同事说 可能是数据不唯一的原因,所以就开始在数据库group by查找数据是否唯一。
解决方案:
最后发现还真是数据不唯一的原因,要修改的数据的自增列竟然不唯一。是的,因为有一部分是我从另一个数据库导进来的数据,所以导致了自增列id竟然有很多重复的。原以为导进来的数据自增列会自动往下排,没想到是保持原来的自增信息。所以吧自增id相同的id删除掉值保留一个,然后在项目里面,ef在_dbContext.SaveChanges();的时候就不会再报错了。
————————————————
版权声明:本文为CSDN博主「qq_490824614」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_37213281/article/details/120885158
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix