2012-04-08 4 views
0

私はトランザクションを学習していますが、実際のプロジェクトでトランザクションを使用した経験はありません。私は、ADO.NET、ストアドプロシージャ、およびWCFでトランザクションを記述できることを知っています。私の混乱は、より適切なトランザクションを書くためにどこですか?トランザクションを複数の場所に書き込む必要がありますか? 2つ以上の場所で取引を行う場合、パフォーマンスに影響はありますか?さまざまなタイプのトランザクションと混同されています

いずれにせよ正しい方法で私を導くことができますか?

Thx!

答えて

1

ここに簡単な説明があります。

可能な限り、最高のパフォーマンスを得るために、データベース(ストアドプロシージャ内)にトランザクションを書き込みます。これは、一般的に、トランザクションを管理する最も簡単な方法であり、最小限のコードしか必要としません。

しかし、それができないシナリオがあります。例えば、2つの異なるデータベース(または他の種類のデータストア)への更新が存在する可能性があります。その状況では、アプリケーション内から(ADO.Netを使用して)トランザクションを管理する必要があります。

同様に、WCFの場合、サービスを介して複数のタスクを実行する場合は、データベースで処理できない場合はサービス内のトランザクションを処理する必要があります。

+0

こんにちは、お返事ありがとうございます!また、TransactionScopeクラスもあります。MSDNのドキュメントでは、コードブロックをトランザクショナルにすると述べています。データベースまたはADO.NETのトランザクションは接続によって作成されますが、このクラスがドキュメント内の接続に関連しているとは見当たりませんでした。つまり、トランザクションコードブロックのみであり、接続には関係しません。 – James

+0

トランザクションは必ずしもデータベースで直接行う必要はありません。たとえば、2つの異なるWebサービスを呼び出すことによって行うことができます。 – DOK

関連する問題