149

なぜこれが壊れているのかについてのアイデアはありますか?

foreach (var p in pp)
{
    ProjectFiles projectFile = (ProjectFiles)p;
    projectFile.Status = Constants.ProjectFiles_ERROR;
    projectFile.DateLastUpdated = DateTime.Now;
    context.SaveChanges();
}

この問題の回避策は、foreachループの前に一度に結果を取得することであると読みました。

しかし、私はそれをしませんでしたか?「pp」は私の場合の結果のコレクションです

4

2 に答える 2

377

変数はオブジェクトのppコレクションではなく、オブジェクトを返すことができる列挙子です。列挙子を使用している間、ソースは開いたままにする必要があります。

メソッドを使用してToList、列挙子をコレクションに実現します。これにより、列挙子からすべてのアイテムが読み取られ、ソースへの接続が閉じられるため、その接続を他の目的に使用できます。

foreach (var p in pp.ToList())
于 2012-04-10T21:14:02.097 に答える