2012-01-24 15 views
1

背景に複数のオブジェクトとの取引を作成するためのベストプラクティスは何ですか:エンタープライズライブラリ5.0

は、私が他のオブジェクトのプロパティの数を持つオブジェクトを持っています。メインオブジェクトの保存時に、データベースにレコードを挿入し、そのサブオブジェクトのSaveメソッドを呼び出します。このモデルの現在のリスクは、主オブジェクトがデータベースに保存されているが、サブオブジェクトの1つがデータベースにない場合、データは正確な状態を反映しないということです。

My .NET 4.0アプリケーションはEnterprise Library 5.0を使用し、データは1つのSQL Server 2008データベースに格納されます。トランザクションのサポートを実装して、すべてのオブジェクトがすべての保存に成功したときに保存されるようにするか、失敗したときにロールバックするようにしたいと思います。

質問:

私は、.NET 1.0/1.1 VS .NET 2.0でのトランザクションのサポートについてgood but dated articleが見つかりましたが、現在のベストプラクティスは、トランザクションのサポートを実装することが何であるかを知りたいと思いました。

答えて

1

上記の記事で概説したように、System.Transactions.TransactionScopeに行きました。 Enterprise Library 3.0以降では、データベースに接続するときにTransaction.Currentが検索されます。トランザクション情報を明示的に渡す必要はありません。

using(TransactionScope scope = new TransactionScope()) 
{ 
    /* Perform transactional work here */ 
    //No errors-commit transaction 
    scope.Complete(); 
} 
関連する問題