0

我知道这个问题在这里被问了很多,但我无法根据我的特定循环收集正确的答案。

我正在使用 foreach 循环来循环访问业务实体,如下所示:

foreach (Content item in category)
 {
   item.Stats = 55;
   item.Commit();
 }

foreach 循环针对它检索到的第一个项目正确运行并放置了值,但与其他几个相比,我在我的页面标题中得到了错误。我知道我收到了错误,因为在迭代期间无法修改该项目。但是我不知道在这个循环中如何提交到数据库。

提前致谢。

4

2 回答 2

1

您可以使用项目的克隆创建一个相同的集合,而不是修改迭代集合中的项目,而是修改并提交克隆集合中的相应项目。然后在完成后丢弃您的迭代集合,将您的克隆集合视为新的“原件”。

于 2013-04-11T21:10:54.390 回答
0

最简单的解决方案是添加 ToList() ,这会导致枚举原始枚举的副本。

foreach (Content item in category.ToList())
 {
   item.Stats = 55;
   item.Commit();
 }
于 2013-04-11T22:25:25.203 回答