Gerenciamento de sessão do NHibernate no ASP.NET MVC

Atualmente, estou brincando com a classe HybridSessionBuilder encontrada na postagem do blog de Jeffrey Palermo:

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

Usando essa classe, meu repositório fica assim:

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);
        }
    }
}

Essa é a melhor maneira de gerenciar a sessão / fábrica do NHibernate? Ouvi coisas sobre a Unidade de Trabalho e a criação de uma sessão por solicitação da Web e a liberação no final. Pelo que sei, minha implementação atual não está fazendo nada disso. Basicamente, depende do Repositório para pegar a sessão na fábrica de sessões e usá-la para executar as consultas.

Existem armadilhas para acessar o banco de dados dessa maneira?

questionAnswers(5)

yourAnswerToTheQuestion