加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – ASP.NET中的FluentNHibernate会话管理

发布时间:2020-12-16 01:32:16 所属栏目:百科 来源:网络整理
导读:NHibernate新手(我的免责声明).我遇到了类似且有趣的 article regarding MVC,但是,我对在通用Web应用程序中管理NHibernate会话的一般最佳实践更为好奇. 我遇到了Burrow项目,但我开始意识到似乎有几个不同的方向.我知道每次我需要触摸数据库时,create a new S
NHibernate新手(我的免责声明).我遇到了类似且有趣的 article regarding MVC,但是,我对在通用Web应用程序中管理NHibernate会话的一般最佳实践更为好奇.

我遇到了Burrow项目,但我开始意识到似乎有几个不同的方向.我知道每次我需要触摸数据库时,create a new SessionFactory可能不符合我的最佳利益,所以我对社区管理会话的工作感兴趣.你用Burrow吗?你将SessionFactory包装成单例吗?

任何方向或见解总是非常感激.

解决方法

要直接回答您的问题,您的ISessionFactory对象应该是单例.您可以以编程方式(即通过将其包装在C#单例中)或通过在IoC容器中配置它来执行此操作.

至于会话,Burrow看起来不错,但是Web应用程序中会话的最优和最简单的模式 – OpenSessionInView – 与NHibernate 2.0.0开箱即用.也就是说,您的数据访问代码调用ISessionFactory.GetCurrentSession()而不是ISessionFactory.OpenSession().然后,通过指定ICurrentSessionContext的实现来说明如何管理工厂的当前会话. NHibernate提供了两个开箱即用的功能,用于将会话与Web请求进行对齐.这在文档中称为“上下文会话”.

毫无疑问,更复杂的Web应用程序可能需要更复杂的延迟加载等更持久的对话,但对于标准的Web应用程序,NHibernate上下文会话应该足够了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读