我开始构建一个应用程序,并计划使用ServiceStack。只是想知道什么是处理NHibernate ISession或其他“按请求”上下文特定会话对象的最佳实践/好方法。ServiceStack每个请求的NHibernate会话
我认为在国际奥委会注册ISessionFactory,如:
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框架有哪些最佳实践?
在此先感谢
能否请您阐述一下您是如何使用的呢? ServiceStack文档对于如何使用这些ServiceRunners确实没有意义。 – slashp 2013-04-17 05:23:39
我添加了代码以添加到您的应用程序主机中。不确定如何使用该服务中的Service runner。 – 2013-07-15 10:54:53
刚刚看到有关更多详细信息的请求,可能已太迟而无法提供帮助,但也许有人想知道。 'code' public class AppHost:AppHostBase { public AppHost():base(“Service”,typeof(AccessService))。大会) {} 公共覆盖无效配置(集装箱货柜) {} 公共 覆盖IServiceRunner CreateServiceRunner (ActionContext中ActionContext中) { 返回新BaseServiceRunner (这一点,ActionContext中); '代码' –
2014-02-07 20:14:44