【发布时间】:2010-09-19 19:54:42
【问题描述】:
我正在将 NHibernate 实现到现有的 Web 应用程序中。但是,我们还有一些其他进程可以在数据库上进行批量插入和更新。如何让 NHibernate 知道后端数据库上发生的更改不是通过 NHibernate 启动的?
我读过的关于 NHibernate 在 asp.net 中使用的大部分信息都提到了将 Session 对象存储在 HttpContext 或 CallContext 中。然后,这将在应用程序生命周期期间存储会话对象。这就是我已经实现的。我害怕在每个请求上初始化 NHibernate 的成本。在每个请求上初始化 Session 对象时,这种方法不会对性能造成重大影响吗?
另外,将 SessionFactory 存储在 HttpContext 或 CallContext 中以便不必在每个请求上重新生成映射是否更有意义?
【问题讨论】:
-
快速回答是新会话将看到新数据。你能准确地澄清你期望发生的事情吗?您是否希望保存的实体在保存之前知道它们下面的数据发生了变化?
标签: asp.net nhibernate caching