我开始构建一个应用程序,我打算使用 ServiceStack。只想知道处理 NHibernate ISession 或其他“每个请求”上下文特定会话对象的最佳实践/好方法是什么。
我想在 Ioc 中注册一个 ISessionFactory 就像:
container.Register<ISessionFactory>(sessionFactory);
并在需要时获取一个新的 Session 对象......或者直接提供会话对象:
container.Register<ISession>(c => sessionFactory.OpenSession()).ReusedWithin(ReuseScope.None);
或者通过 Global.asax BeginRequest 事件处理 ISession 和默认事务:
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 框架,最佳实践是什么?
提前致谢