【发布时间】:2016-04-12 14:55:06
【问题描述】:
我想,对于在 ASP.NET 应用程序中遇到 NHibernate 的每个人来说,这是一个常见的问题,但即使经过两个小时的谷歌搜索,我仍然无法弄清楚如何正确管理 ISession 生命周期。 我知道它应该是每个请求一个 ISession 实例,但问题是我的 ISessionFactory 被深入注入基础设施层存储库的调用堆栈中,由域类调用,然后由控制器调用。我希望我的域服务保持单例,以防止他们重新创建每个请求,但我不能将依赖于请求的服务注入单例服务。另一方面,我不能在存储库中手动打开和关闭会话,因为这样我就失去了“懒惰”。 那么问题来了,如何在 IOC-container 中注册 ISession,以便在每个请求中获取新的,但要从单例存储库中使用它?
【问题讨论】:
标签: c# asp.net nhibernate