在书写 ActiveRecord 配置的地方一定要加上 isWeb=true,例如
看起来这不是可加可不加的选项,而是非加不可的选项。
由于 AR 源代码中按线程管理 NHibernate Session ,不同于桌面应用的单线程,Web 是使用当前的线程 HttpContext.Current 处理事情,isWeb=true 的作用就是使 AR 的 Session 管理符合 Web 服务端的多线程特性,来区分来自不同客户端的数据操作。如果不设定 isWeb=true 的话,有可能当第一个客户打开了 session 后第二个客户拿不到 session,或者出现其他功能上的问题。
<activerecord isWeb="true">
看起来这不是可加可不加的选项,而是非加不可的选项。
由于 AR 源代码中按线程管理 NHibernate Session ,不同于桌面应用的单线程,Web 是使用当前的线程 HttpContext.Current 处理事情,isWeb=true 的作用就是使 AR 的 Session 管理符合 Web 服务端的多线程特性,来区分来自不同客户端的数据操作。如果不设定 isWeb=true 的话,有可能当第一个客户打开了 session 后第二个客户拿不到 session,或者出现其他功能上的问题。