1

皆さん、なぜ私がそれをしなければならないのか考えているに違いありません...私は間違っているかもしれませんが、私はシステムを設計しています

次のレイヤーがあります

  • データ アクセス層 (SQL トランザクションを処理)
  • データ管理者
  • プレゼンテーション層

データ マネージャーは、SQL トランザクションを実行するためにデータ アクセス層を呼び出します。プレゼンテーション層の特定の機能は、複数のデータマネージャーを呼び出してその仕事をします...

各データ マネージャーがデータ アクセス クラスの個別のインスタンスを作成し、それらがトランザクションを共有しない場合、プレゼンテーション レイヤーの関数が複数のトランザクションで SQL を実行しており、トランザクションの 1 つが失敗すると、それがロールバックされ、影響はありません。他のトランザクション。私たちはそれを望んでいません...そのプレゼンテーション層機能の仕事を完了するために起こったすべてのトランザクションをロールバックしたいのです。

私はそれを達成する方法がわかりません...

私のデザインは間違っていますか?助言がありますか ???

SQL Server 2008 と C# と .Net 4.0 を使用しています

4

1 に答える 1

1

SQL Server はネストされたトランザクションをサポートしているため、データ層/マネージャーは最初にトランザクションを開始できます http://msdn.microsoft.com/en-us/library/ms189336(v=sql.105).aspx

于 2013-01-18T06:12:15.887 に答える