Actualmente estoy jugando con la clase HybridSessionBuilder encontrado en el blog de Jeffrey Palermo:NHibernate gestión de sesiones en ASP.NET MVC
http://jeffreypalermo.com/blog/use-this-nhibernate-wrapper-to-keep-your-repository-classes-simple/
El uso de esta clase, mi repositorio es el siguiente:
public class UserRepository : IUserRepository
{
private readonly ISessionBuilder _sessionBuilder;
public UserRepository(ISessionBuilder sessionBuilder)
{
_sessionBuilder = sessionBuilder;
}
public User GetByID(string userID)
{
using (ISession session = _sessionBuilder.GetSession())
{
return session.Get<User>(userID);
}
}
}
¿Es esta la mejor manera de gestionar la sesión/fábrica de NHibernate? He escuchado cosas sobre Unit of Work y la creación de una sesión por solicitud web y la limpieza al final. Por lo que puedo decir, mi implementación actual no está haciendo nada de esto. Básicamente, se basa en el Repositorio para tomar la sesión de la fábrica de la sesión y usarla para ejecutar las consultas.
¿Hay algún error al hacer acceso a la base de datos de esta manera?
no está seguro acerca de las trampas, pero se puede comprobar a cabo una implementación de la Unidad de patrón de trabajo utilizando Rhino.Commons a través de www.autumnofagile.net ... que está construyendo una aplicación MVC con NHibernate, Windsor y Rhino Steve Bohlen .Commons ... es una gran serie – Webjedi