一个愚蠢的问题,也许,但在这个夜晚的时候,StackOverFlow是我唯一的朋友。[N]休眠会话
我在玩NHibernate,并想要在Web应用程序中将这两个关于Sessions的陈述事实化。
1)在应用程序的生命周期中,每个数据库应该只有一个ISessionFactory。
2)您应该只有每个的HttpRequest或批处理HTTPRequests的(即通话1周的Isession)
[我不想工具或框架的建议,只是想确认上述]
一个愚蠢的问题,也许,但在这个夜晚的时候,StackOverFlow是我唯一的朋友。[N]休眠会话
我在玩NHibernate,并想要在Web应用程序中将这两个关于Sessions的陈述事实化。
1)在应用程序的生命周期中,每个数据库应该只有一个ISessionFactory。
2)您应该只有每个的HttpRequest或批处理HTTPRequests的(即通话1周的Isession)
[我不想工具或框架的建议,只是想确认上述]
你应该在应用程序的生命周期中只有一个ISessionFactory。
Session-per-request是我如何使用NHibernate。可能有其他模式,但这是我在我的Web项目中坚持的模式。
你的假设是正确的。
会话的每个请求是Web应用程序的最常见的模式,起到很好的与MVC,网络农场等
有一些准备使用的模块,在http://unhaddins.googlecode.com/svn/trunk/uNhAddIns/uNhAddIns.Web/来处理这些模式(你可以检查uNhAddIns的其余部分)
我们目前使用Session-per-Request,但是在某些情况下,我遇到了这种方法的问题。
我不认为答案是通用的,你应该考虑每单位工作也使用一个会话。
特别是当涉及到实体的automagic刷新时,每个请求的Session可能会让你陷入屁股。