有什么想法可以解释为什么它会崩溃吗?
foreach (var p in pp)
{
ProjectFiles projectFile = (ProjectFiles)p;
projectFile.Status = Constants.ProjectFiles_ERROR;
projectFile.DateLastUpdated = DateTime.Now;
context.SaveChanges();
}
我读到这个问题的解决方法是在foreach循环之前一次性检索结果。
但我不是这么做的吗?在我的例子中,"pp“是结果的集合
发布于 2012-04-11 05:14:02
pp
变量不是对象的集合,它是一个可以返回对象的枚举器。使用枚举器时,源必须保持打开状态。
使用ToList
方法将枚举器实现为集合。这将读取枚举数中的所有项,并关闭与源的连接,以便您可以将该连接用于其他事情。
foreach (var p in pp.ToList())
发布于 2015-04-08 20:46:36
解决这个问题的一种方法是在迭代集合之前在集合上调用.ToList()
。
在此过程中,在循环退出后只调用context.SaveChanges()
一次,以加快代码速度。
https://stackoverflow.com/questions/10096509
复制相似问题