J'ai vu de nombreuses implémentations sur le Web de personnes gérant leurs sessions et transactions NHibernate dans un HttpModule.Gestion des sessions et des transactions NHibernate dans HttpModule
Le HttpModule:
- crée une session au début de la demande
- enveloppe la demande entière dans une transaction
- engage la transaction à la fin de la demande
Si les gens utilisent cette stratégie, comment traitent-ils le scénario suivant:
- demande vient
- base de données objet récupérer
- update objet objet
- validation échoue
- modifications de l'objet sont toujours persisté parce que la transaction est validée dans le HttpModule.
Il semble qu'il n'existe aucun bon moyen de restaurer la transaction dans le scénario ci-dessus. Le seul plan que je peux mettre en place est de:
- écrivez ma validation de manière à ce qu'elle réussisse avant de mettre à jour mon objet de domaine (prend ma validation hors de mon modèle de domaine).
- gérer ma transaction plus proche de ma logique métier et jeter l'idée de le faire de manière transparente dans un HttpModule. (J'ai vu pas mal de messages le recommander)
Vu que tant de gens semblent utiliser l'approche HttpModule, j'espère qu'il y a une troisième façon de gérer ce scénario auquel je n'ai pas pensé. ?
Je vient aussi à la même question ces derniers temps. Je commence par NHibernate sur un projet. Ma dernière approche utilise Autofac pour IOC et utilise HttpRequestScope pour les sessions. Et toutes les opérations de transaction au niveau du référentiel métier. Peut-être que ce n'est pas le meilleur, mais ça fonctionne bien pour l'instant. – Elph
Valider les changements au lieu de valider les changements appliqués à l'entité est beaucoup plus facile. – Paco
Avez-vous trouvé une réponse à cette question? – Rippo