Gestión de sesiones de NHibernate en ASP.NET MVC

Actualmente estoy jugando con la clase HybridSessionBuilder que se encuentra en la publicación del blog de Jeffrey Palermo:

http://jeffreypalermo.com/blog/use-this-nhibernate-wrapper-to-keep-your-repository-classes-simple/

Usando esta clase, mi repositorio se ve así:

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 administrar la sesión / fábrica de NHibernate? He escuchado cosas sobre la Unidad de trabajo y la creación de una sesión por solicitud web y la descarga 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 sesiones y usarla para ejecutar las consultas.

¿Hay alguna dificultad para acceder a la base de datos de esta manera?

Respuestas a la pregunta(5)

Su respuesta a la pregunta