C# EF changetracker修改的条目引发集合修改错误

C# EF changetracker修改的条目引发集合修改错误,c#,asp.net,.net,entity-framework,C#,Asp.net,.net,Entity Framework,我有一个带有EF的Windows桌面应用程序,它使用dbcontext和更改跟踪器。我可以通过迭代集合来修改某些记录以更新datetime和modifiedby userid 虽然它适用于某些条目,但也有一些条目抛出了此错误 System.InvalidOperationException:集合已修改;枚举操作不能执行 下面是我的代码,它编译得很好 var changeSet = this.ChangeTracker.Entries(); foreach (var entry in cha

我有一个带有EF的Windows桌面应用程序,它使用
dbcontext
和更改跟踪器。我可以通过迭代集合来修改某些记录以更新datetime和modifiedby userid

虽然它适用于某些条目,但也有一些条目抛出了此错误

System.InvalidOperationException:集合已修改;枚举操作不能执行

下面是我的代码,它编译得很好

 var changeSet = this.ChangeTracker.Entries();

 foreach (var entry in changeSet)
 {
     if (entry.State == EntityState.Added || entry.State == EntityState.Modified)
     {                   
         if (entry.Entity is IAuditableEntity entity)
         {
             entry.Entity.ModifieDate = Now;
             entry.Entity.ModifiedById = userId;//guid
         }
     }
}

// ModifiedById has a foreign key reference to Users table -> id field
// IAuditableEntity has ModifiedById and ModifiedDate fields
我尝试转换到列表,但它抛出了一个无法转换到列表的错误。它适用于“此”环境中的某些模型。仅针对一个模型引发了错误

更新:


将条目复制到列表并更新列表中的对象可以完成此任务,并且不会出现错误。但是我想知道为什么我使用了
this.ChangeTracker.Entries()
for each时,它对少数人有效,而对其他人无效。

对不起,这是一个输入错误