我在 ASP.NET MVC3 项目中使用(流利的)NHibernate。我正在使用通过实现自定义 HttpModule 为每个请求打开一个 NHibernate 会话的标准方法。会话在 BeginRequest 中打开并在 EndRequest 中关闭。
我正在连接 Pre/Post Insert/Update 事件来为我的实体编写历史日志。当我尝试将实体保存在这些事件处理程序中时,就会出现问题。似乎 EndRequest 已经在这些事件处理程序之前被调用,因此 NHibernate 会话已经关闭。
如何延迟会话的关闭以便保存历史实体?我已经查看了rhino commons上的一些 HttpModules ,但对于我的情况来说,这似乎有点矫枉过正。