Question

Si j'implémente un outil OR / M simple, où dois-je placer la carte d'identité? Il est évident que chaque référentiel doit avoir accès à sa propre carte d’identité afin de pouvoir enregistrer les objets chargés (ou peut-être que DataMapper est celui qui enregistre les objets dans IdentityMap?).

Et lorsque je commets une unité de travail, je dois également accéder à la carte d'identité pour voir quelle entité est sale et laquelle est propre (ou je me trompe encore et il existe un objet externe qui appelle les méthodes RegisterClean / RegisterDirty de mon UnitOfWork classe? Alors quel objet fait cela?).

Est-ce que cela signifie que je devrais implémenter IdentityMap en tant qu'objet totalement indépendant contenant des IdentityMaps internes pour chaque type d'entité?

Très confus quant à la manière dont IdentityMap, Repository et UnitOfWork fonctionnent tous ensemble.

Était-ce utile?

La solution

Avec notre mappeur .NET O / R, LightSpeed ??, nous placé la carte d'identité à l'intérieur de l'unité de la classe de travail. Cela a très bien fonctionné pour nous et semble assez naturel dans la mesure où il agit efficacement comme cache de niveau 1 à des fins d'interrogation au cours de la vie de l'unité de travail.

En règle générale, injectez ou fournissez en quelque sorte un UoW pour votre classe Repository afin que vous disposiez d'une portée et d'une passerelle efficaces pour l'interrogation.

J'espère que cela aide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top