myesn

myEsn2E9

hi
github

ABP ユニット オブ ワーク(工作単位)

ABP 中の Unit of Work はデータベース接続とトランザクションの管理に使用されます

データベース接続は 遅延して開き、早めに解放 する必要があります。データベース操作を トランザクション で実行することは、最適な方法と考えられています。

ABP での接続とトランザクション管理#

ABP はこれらの方法を組み合わせ、シンプルで効果的なモデルを提供しています。

リポジトリ Repository#

リポジトリはデータベース操作を主に行うクラスです。リポジトリメソッドに入ると、ABP はデータベース接続を開き(すぐに開くとは限りませんが、データベースを最初に使用するときには確実に開きます。ORM プロバイダの実装に依存します)、トランザクションを開始します。したがって、リポジトリメソッド内で安全に接続を使用できます。メソッドが終了すると、トランザクションがコミットされ、接続が解放されます。 リポジトリメソッドが例外をスローした場合、トランザクションは ロールバック され、接続が解放されます。これにより、リポジトリメソッドはアトミックです(1 つのユニット)。

リポジトリメソッドが他のリポジトリメソッドを呼び出した場合(通常、ユニットが他のユニットメソッドを呼び出した場合)、それらは同じ接続とトランザクションを共有します。最初に入ったメソッドが接続とトランザクションを管理し、他のメソッドは同じ接続とトランザクションを使用します。

ユニット Unit#

ユニットはリポジトリとアプリケーションサービスメソッドに暗黙的に有効です。データベース接続とトランザクションを他の場所で制御したい場合は、明示的に使用できます。

参考#

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。