6

いくつかの制約に基づいて複数のテーブルで挿入と更新が行われる特定のシナリオがあります。そのため、これらのシナリオでトランザクションスコープを使用するのは自然なことです。これで、リポジトリレイヤーとサービスレイヤーができました。サービスレイヤーはリポジトリとUIを仲介し、永続的に無知です。現在、サービス層またはリポジトリ層のいずれかでトランザクションを使用する場所がわかりません。ORMを使用していません。私はまた、そのようなシナリオの作業単位パターンについて提唱する人々を見てきました。私の現在のシナリオに合った作業単位パターンに関する例はありますか?私が見たすべての例はORMSを使用しています。

ありがとう、

4

2 に答える 2

6

もちろん、これはシステムによって異なりますが、通常はサービス層で行います。特に、サービス層のメソッドが複数のきめの細かいリポジトリ メソッドを呼び出し、それらがすべてコミットまたはすべてロールバックすることを期待している場合。

于 2010-02-15T12:19:34.013 に答える
4

これに答えるのに役立つかもしれないいくつかの質問。

トランザクション要件を理解している層はどれですか? リポジトリ インターフェースの粒度はどのくらいですか?

私の世界では、挿入、更新、削除などのきめ細かな永続化操作を行う傾向があります。そして、それらをサービス層で構成します。したがって、この環境では、トランザクションの範囲を理解しているのはサービス層であることは明らかです。

于 2010-02-15T12:18:33.347 に答える