私は TransactionScope について読んでいて、ADO.Net トランザクションとの相互運用性について質問がありました。現在、それぞれがストアド プロシージャを呼び出し、独自の個々のトランザクションを開始およびコミットするいくつかのデータ アクセス メソッドがあります。簡単な定型的なもので、メソッドは次のようになります。
sqlCommand = //create SQLCommand with Stored proc
SqlTransaction myTransaction = myConnection.BeginTransaction();
sqlCommand.Transaction = sqlTransaction;
sqlCommand.Execute();
sqlTransaction.Commit();
私は物事を少し単純化しましたが、あなたはその考えを理解しています。
これらのクラス メソッドのうち 2 つを連続して呼び出し、ビジネス レイヤーからチームとしてコミットまたはロールバックする必要があります。データ メソッドを変更できないため、2 つの呼び出しを TransactionScope ブロックに入れることを考えていました。
これを行う場合、TransactionScope を作成するときにどのようなパラメーターを使用すればよいですか? 私はすでに TransactionScopeOption.RequiresNew オプションを使用してこれを試しましたが、うまくいくように見えますが、それは私が実験しているだけであり、それが正しいかどうかはわかりません。(ここで、これらは同じ SQL サーバー上で実行される SQL トランザクションのみであることに注意してください。)
TransactionScope には、COM+ トランザクションを処理するためのコンストラクター オプションがあることがわかりました。私は ADO.Net トランザクションを使用しているため、ここで関係がありますか? アドバイスをありがとう。