ServiceStack NHibernate Session для каждого запроса
Я начинаю создавать приложение, и я планирую использовать ServiceStack. Просто хочу узнать, каковы наилучшие практики / хорошие подходы для обработки NHibernate ISession или другие "по запросу" контекстно-специфичные объекты сеанса.
Я думал, что регистрация ISessionFactory в Ioc, например:
container.Register<ISessionFactory>(sessionFactory);
И когда нужно получить новый объект Session ... Или, может быть, предоставить объект сеанса напрямую:
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?
заранее спасибо