【发布时间】:2016-12-03 06:03:49
【问题描述】:
我保存了超过 50000 条记录,这是一个很长的代码,所以我无法在这里复制。但总而言之,我收到以下错误,我也没有在本地收到此错误,但在现场,并非每次都收到此错误。我无法追踪错误的确切行:-
错误:-
InOutImport POST 错误消息中的错误:存储更新、插入或删除语句影响了意外的行数 (0)。 自加载实体后,实体可能已被修改或删除。 刷新 ObjectStateManager 条目。
堆栈跟踪:-
在 System.Data.Entity.Internal.InternalContext.SaveChanges()
我该如何解决这个错误?
【问题讨论】:
-
错误信息看起来很清楚。假设您从数据库中获得了 50000 条记录,然后更新它们并调用 SaveChanges。执行生成的 UPDATE 语句并返回受影响的行数。现在事实证明,受影响的行数少于 50000,这意味着,例如,在您从数据库中获取行并更新它们之前,某些行已被删除。因此,如果不引发此错误,您的某些更新将会丢失。
-
这是一个很长的代码所以无论如何你可能在一个代码中做的太多了。尝试对其进行模块化,这样您就可以跟踪何时发生的事情,并且能够在此处显示相关部分。没有代码,这是无法回答的。除了例外情况,我们无法告诉您更多信息。
标签: c# entity-framework