我開始構建一個應用程序,並計劃使用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