Я боролся с управлением сессиями NHibernate и теперь нашел два возможных решения для удовлетворения сеанса на веб-запрос.
Я использую Windsor для IoC в проекте ASPNET MVC
Первое решение - открыть сеанс в begin_request и снова закрыть / удалить его в end_request. В виндзорской настройке я бы
container.Register (Component.For (). UsingFactoryMethod (() => SessionFactory.GetCurrentSession ()). LifeStyle.Transient;
Это решение создает сеанс для каждого запроса и передает его через GetCurrentSession.
Второе решение - использовать Виндзор как
container.Register (Component.For (). UsingFactoryMethod (() => SessionFactory.OpenSession ()). LifeStyle.PerWebRequest);
Это также может дать мне сеанс для каждого веб-запроса и поддержки конструктора. Это немного более просто, но мне нужно второе мнение.
Пожалуйста, дайте мне знать, что вы предпочитаете использовать,
С наилучшими пожеланиями
Rasmus