私は、アプリケーション層でインスタンス化され、ネストされたトランザクションを可能にするビジネス層とデータ層に送信されるTransactionContextクラスを書いています。今私は決定する必要があります: 1.明示的なトランザクションを使用し、必要に応じてすべての関数でトランザクションの開始、コミットまたはロールバックを呼び出さなければなりませんか? 2. TransactionContextが作成されたときにトランザクションを暗黙的に開始することができます。ネストされたメソッドのみをロールバックすることができます。トランザクションですべてのdbコールをラップする必要がありますか?
これで、コード作成が簡単になります。トランザクションのロールバックフラグを設定し、ほとんどのメソッドのうちの1つだけがコミットまたはロールバックを心配するようにしてください。問題は、トランザクションですべてのデータベーストラフィックをラッピングするのが良い考えであるかどうかはわかりません。
トランザクション内ですべてのデータベース呼び出しをラップすると、どのような悪影響が及ぶ可能性がありますか?
私の設定は、ASP.NET appliactionとMSSQL Serverデータベースです。 appliactionとデータベースが異なるサーバー上にある可能性があります。それが決定に影響するものであれば可能です。