这个nhibernate设置建议它更好,因为我认为它不会在会话打开时启动事务,除非它被显式调用,即延迟加载。
我似乎不明白代码中这个延迟加载是在哪里发生的:http://nhforge.org/blogs/nhibernate/archive/2011/03/03/effective-nhibernate-session-management-for-web-apps.aspx
有人能解释一下这种方法比每个web请求打开一个新的事务更好吗?
- 作者并不认为它更好,因为它不启动事务(实际上它确实-参见
BeginSession
函数),而是因为它不总是启动会话。 - 'lazy'是指会话的初始化。
意思是-会话只在需要时才启动。
(你会把它与延迟加载混淆,后者与从数据库加载值有关,与这里无关)。
"懒惰"部分是,正如作者解释的那样,OpenSession
函数直到需要时才被调用(即有人试图使用Session对象)。