2010-02-15 7 views
3

J'ai un certain scénario où les insertions et les mises à jour sont effectuées sur plusieurs tables en fonction de certaines contraintes. Il est donc naturel d'utiliser Transaction scope pour ces scénarios. Maintenant, j'ai une couche de dépôt et une couche de service. couche de service médiatise le référentiel et l'interface utilisateur et est ignorante persistante. Maintenant, je ne sais plus où utiliser les transactions en service ou dans les couches de référentiel. Je n'utilise aucun ORM. J'ai également vu des gens préconiser des modèles d'unité de travail pour de tels scénarios. Existe-t-il des exemples de modèle d'unité de travail qui conviennent à mes scénarios actuels, tous les exemples que j'ai vus utilisent ORMS.Gestion des transactions dans la couche de service ou la couche de référentiel?

Merci,

Répondre

4

Cela va dépendre de votre système bien sûr, mais généralement je le ferais dans la couche de service. Surtout si vos méthodes de couche de service appellent plusieurs méthodes de référentiel à granularité fine et attendent toutes les validations ou toutes les restaurations.

3

Quelques questions qui peuvent aider à répondre à cette question.

Quelle couche comprend les exigences transactionnelles? Quelle est la granularité de votre interface de référentiel?

Dans mon monde, nous avons tendance à avoir des opérations de persistance à granularité fine, Insert, Update, Delete. puis les composer dans la couche de service. Par conséquent, dans cet environnement, il me semble évident que c'est la couche de service qui comprend la portée transactionnelle.

Questions connexes