ビジネス層にトランザクションを実装することは良い習慣ですか
-
29-10-2019 - |
質問
ASP.NETWebアプリケーションでのトランザクションの実装を検討しています。その3層アーキテクチャ。 ビジネスレイヤーからWebサービスを呼び出しており、TransactionOPtion属性を設定してWebサービスにトランザクションを実装することを計画しています。
データレイヤーに来て、トランザクションをデータレイヤーに実装するのは良いオプションですか、それともビジネスレイヤーから呼び出す必要がありますか。 ビジネスレイヤーからトランザクションを開始する場合、トランザクションコンテキストをデータレイヤーに渡す必要があると思いますが、Datalyer自体でトランザクションを開始できるため、私によれば意味がありません。別のデータベースと話しているわけではなく、BusinessLayerから複数のメソッド呼び出しがありません。したがって、このコンテキストでは、ビジネス層でトランザクションを実行する必要があるとは思いません。 私の理解を確認/修正していただけませんか?
ありがとう
ソニ
解決
ビジネスレイヤーへの1回の呼び出しからデータレイヤーへの複数の呼び出しがある場合、トランザクションスコープをビジネスレイヤーに上げることを避けることはできないと思います。
ビジネス層の呼び出しごとに1つのデータ層の呼び出しに制限する場合は、もちろん、ビジネス層レベルのトランザクションは必要なく、データ層でのみ保持できます。
他のヒント
トランザクションの追跡は簡単ではありません。
トランザクションの開始と終了の責任はビジネス層に移ります。
->レイヤー間の結合は、Webサービスを呼び出すときに予想されるよりもはるかに大きくなります。
所属していません StackOverflow