【发布时间】:2020-02-17 05:30:42
【问题描述】:
要将实体附加到实体框架中的数据库上下文,我使用以下内容:
var student = GetStudent();
if (!_dbContext.Students.Local.Any(e => e.ID == student.ID))
_dbContext.Attach(student);
此代码有时(例如,3 个中有 1 个)失败,并在调用 Attach 时引发以下错误:
System.InvalidOperationException:枚举数实例化后修改了集合。
只要在抛出异常时重新运行这段代码,就可以解决问题。但是,我想知道为什么会看到此错误、导致它的原因以及如何解决它?
(此代码属于一个大项目,我不确定哪些部分可以帮助确定此问题的原因;如果您有任何疑问,请告诉我,并将分享相关代码。)
【问题讨论】:
-
这段代码是否嵌套在 foreach 循环中?
-
不,不是。它位于由 API 控制器调用的方法中。
标签: c# asp.net-core entity-framework-core