我正在尝试设置 NHibernate 来处理每个 Web 请求的会话。我有一个项目在使用我的任何存储库时初始化我的会话。我想知道管理每个 Web 请求的会话的最佳方式。因为我的架构是解耦的,所以我想避免在我的 Web 项目中打开会话并关闭会话。有没有一种好方法来处理这个问题,而不需要 web 项目知道 NHibernate 的存在?
这是我的请求流程:
Web 请求 -> ASP.NET MVC 3 -> 控制器 -> 服务 -> 存储库(打开会话) -> NHibernate -> 数据库 -> 返回 MVC 并退出。