Управление сессиями NHibernate в ASP.NET MVC

В настоящее время я играю с классом HybridSessionBuilder, который можно найти в блоге Джеффри Палермо:

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

Используя этот класс, мой репозиторий выглядит так:

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

Это лучший способ управления сессией / фабрикой NHibernate? Я слышал кое-что о модуле работы и создании сеанса для каждого веб-запроса и его сбросе в конце. Из того, что я могу сказать, моя текущая реализация не делает ничего из этого. По сути, он полагается на то, что репозиторий извлекает сеанс из фабрики сеансов и использует его для выполнения запросов.

Есть ли подводные камни для доступа к базе данных таким образом?

Ответы на вопрос(5)

Ваш ответ на вопрос