質問

単純なOR / Mツールを実装する場合、アイデンティティマップはどこに配置しますか?明らかに、各リポジトリは独自のIDマップにアクセスできる必要があるため、ロードされたオブジェクトを登録できます(または、DataMapperがIdentityMapにオブジェクトを登録するのでしょうか?)。

また、作業単位をコミットするときに、IDマップにアクセスして、どのエンティティが汚れており、どのエンティティがクリーンであるかを確認する必要がありますクラス?次に、これはどのオブジェクトですか?)。

これは、IdentityMapを、各エンティティタイプの内部IdentityMapを含む完全に独立したオブジェクトとして実装する必要があるということですか?

IdentityMap、Repository、およびUnitOfWorkがどのように連携するかについて本当に混乱しています。

役に立ちましたか?

解決

.NET O / Rマッパー、LightSpeed を使用して、作業単位クラス内にアイデンティティマップを配置しました。これは私たちにとって非常にうまく機能しており、作業単位の存続期間中にクエリ目的でレベル1キャッシュとして効果的に機能するため、非常に自然に感じられます。

一般的に、リポジトリクラスにUoWを挿入するか、何らかの方法で提供して、クエリに対する有効なスコープとゲートウェイを用意します。

お役に立てば幸いです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top