2010-11-26 10 views
0

エンタープライズライブラリを使用してスコープ内でトランザクションを処理する方法。私は1つのスコープで実行する必要がある3つのストアドプロシージャを持っています。 System.Transaction名前空間を使用したくないエンタープライズライブラリのトランザクション

+1

OK質問には尋ねる必要があります... *なぜ* 'あなたは' System.Transactions'名前空間を使いたくありませんか? –

答えて

0

接続オブジェクトに対してBeginTransactionメソッドを呼び出して、DbTransactionオブジェクトを取得できます。次に、DbTransactionをとるEntlibデータベースオブジェクトのオーバーロードを使用します。しかし、管理するのは巨大な痛みです。 Entlibに頼るのではなく、手動で少なくとも1つの接続を作成して閉じる必要があります.DbTransactionオブジェクトを必要とするすべてに渡す必要があります。

ここでは、本当にTransactionScopeが正しい答えです。脳死の企業ポリシーではない、実際にあなたがそれを使うのを妨げる何らかのブロッキングシナリオがあるなら、それが何であるか知りたいです。

+0

代わりに考えただけです。同じ順序の3つのsprocsであれば、正しい順序でそれらを呼び出す3番目のsprocを作成し、データベースサーバ内でトランザクションを完全に管理してください。新しいsprocは "Trans exec exec sproc1 exec sproc exec sproc3 Commit Trans"とかそういうもの(私のsqlは大したものではありません)をします。 –

関連する問題