2008-12-11 15 views
32

He estado leyendo acerca de Nhibernate por un tiempo y he estado tratando de usarlo para un sitio que estoy implementando. Leí the article by Billy McCafferty sobre las mejores prácticas de NHibernate, pero no vi ninguna indicación sobre dónde es el mejor lugar para manejar las transacciones.Buenas prácticas de transacciones NHibernate

Pensé en poner ese código en el objeto de acceso a datos (DAO) pero no estoy seguro de cómo manejar los casos en los que se usa más de un DAO. ¿Cuáles son los mejores lugares para poner código de transacción en su aplicación NHibernate?

Respuesta

10

Realmente depende de su entorno. Por ejemplo, utilizamos el patrón Open-Session-In-View (enlace Java pero el patrón es el mismo en .NET) en un sitio ASP.Net y usamos un HttpModule para controlar sesiones y transacciones. El HttpModule abre una sesión e inicia una transacción en el evento BeginRequest y luego confirma la transacción y cierra la sesión en el evento EndRequest.

Diferentes entornos y patrones de comunicación conducirán a diferentes estrategias de gestión de sesión/transacción.

Hay una gran cantidad de discusión sobre las diversas estrategias en el NHibernate Users Group, así como en la web en general.

Cuestiones relacionadas