Я начинаю создавать приложение и планирую использовать ServiceStack. Просто хочу знать, каковы лучшие практики / хорошие подходы для обработки NHibernate ISession или других объектов сеанса, специфичных для контекста запроса.
Я думал, что зарегистрировать ISessionFactory в Ioc, например:
container.Register<ISessionFactory>(sessionFactory);
И при необходимости получить новый объект сеанса ... Или, может быть, напрямую предоставить объект сеанса:
container.Register<ISession>(c => sessionFactory.OpenSession()).ReusedWithin(ReuseScope.None);
Либо обработайте ISession и транзакцию по умолчанию через событие Global.asax BeginRequest:
protected void Application_BeginRequest(object sender, EventArgs e)
{
var session = factory.OpenSession();
ITransaction itrans = session.BeginTransaction();
Context.Items.Add("session", session);
Context.Items.Add("trans", itrans);
}
Итак, я немного запутался, каковы лучшие практики с учетом вышеуказанных технологий или аналогичных, таких как EF или другой фреймворк Rest-Services?
заранее спасибо