tutorial net mvc example ejemplo asp c# nhibernate fluent-nhibernate structuremap

c# - mvc - nhibernate vb net example



usando(Fluido) NHibernate con StructureMap(o cualquier IoCC) (2)

No he utilizado el mapa de estructura, pero tal vez aún pueda guiarlo en la dirección correcta. Fluido nHibernate es una buena elección sobre los archivos hbm.

En cuanto a la solicitud http, no es necesario que se asegure de cerrar la sesión cuando finaliza la solicitud http. Si no lo haces, terminarás filtrando la sesión nHibernate. No estoy seguro de si el mapa de estructura lo manejará por usted, lo que hice fue tener un módulo http que cierra la sesión.

Sin embargo, una cosa que debe destacarse es que se asegurará de que envuelva todos sus datos de acceso en una transacción y se asegure de que nHibernate realmente realice los cambios. Si haces esto como parte de tu sesión cerrada, podrías perder la oportunidad de manejar los errores. Tengo curiosidad por escuchar lo que terminaste teniendo que hacer para obtener este workign.

En mi búsqueda para aprender NHibernate, he llegado al siguiente obstáculo; ¿Cómo debería integrarlo con StructureMap?

Aunque los ejemplos de código son muy bienvenidos, estoy más interesado en el procedimiento general.

Lo que estaba planeando hacer era ...

  • Use NHibernate con Fluent para crear mis asignaciones de clase para usar en la Configuración de NHibs
  • Implementar ISession e ISessionFactory
  • Bootstrap una instancia de mi ISessionFactory en StructureMap como singleton
  • Registre ISession con StructureMap, con almacenamiento en memoria caché por HttpRequest

Sin embargo, ¿no necesito llamar a varios métodos de ordenación en mi instancia de sesión al final de HttpRequest (porque ese es el final de su vida útil)?

Si hago el tid-up en Dispose (), ¿se ocupará structuremap de esto para mí?

Si no, ¿qué se supone que debo hacer?

Gracias

Andrés


Uso StructureMap con fluent-nhibernate (y NH Validator) en 3 de mis proyectos actuales. 2 de ellos son aplicaciones ASP MVC y el tercero es un servicio web de WCF.

Su estrategia general suena correcta (excepto que no hará su propia sesión o SessionFactory, como ya se señaló en los comentarios). Para más detalles, enganche mi código de configuración desde aquí:

http://brendanjerwin.github.com/development/dotnet/2009/03/11/using-nhibernate-validator-with-fluent-nhibernate.html

La publicación trata realmente sobre la integración de NH Validator y Fluent-NHibernate, pero puedes ver exactamente cómo registro la fábrica de sesiones y ISession con StructureMap en la sección "Bonificación" de la publicación.

RE: Tidy up: debe intentar y siempre trabajar dentro de una transacción y confirmar o revertir la transacción al final de su unidad de trabajo. NH solo utiliza SQL Connections cuando lo necesita y se encargará de la limpieza de ese recurso limitado para usted. La recolección de basura normal se encargará de sus sesiones.

Session Factory es un objeto muy costoso que solo deseará inicializar una vez y conservar durante toda la vida de su aplicación.