1

次のシナリオがあります。

using (TransactionScope TX = new TransactionScope()) 
{

   for (int i = 0; i < Iterations; i++)
   {
      //Loop and perform DB updates.

      //Update logs
      using (TransactionScope TX1 = new TransactionScope()) 
      {
         //Open DB Connection and update the logs to say i out of iterations complete.
         TX1.Complete();
      }
   }

   TX.Complete();
}

私が抱えている問題は、ユーザーが進行状況を確認できるようにログを更新したいのですが、ループで実行されているSQLのメインブロックをコミットしたくないということです。

明らかな何かが欠けているかどうかはわかりませんが、誰かが何か提案がありますか。

ASP.NET4を使用しています。

4

1 に答える 1

0

まず、ログをFORループの外側ではなく、内側で更新する必要があるようです。

次に、同じ名前の2つのトランザクションがあります。ネストされたトランザクションに別の名前を付けます(TX_2など)。

于 2012-08-30T15:40:47.840 に答える