代码之家  ›  专栏  ›  技术社区  ›  Martin

如何在计时器内使用nhibernate currentsessionContext

  •  0
  • Martin  · 技术社区  · 15 年前

    我构建了一个使用 ISessionFactory.GetCurrentSession() 查找其方法应使用的当前会话 CurrentSessionContext.Bind 在我的应用程序中绑定会话。在我使用的nhibernate配置中 thread_static 作为我的 current_session_context_class .

    到目前为止,这一切都是完美的。在每个线程上,我都创建了一个新会话,存储库实例将使用该会话。

    但当我使用 System.Threading.Timer 回调将在threadpool内的任何线程上调用。这样我就不能在执行一个回调之后绑定会话,因为下一个回调可以在不同的线程上执行。

    如何处理会话(有或无) CurrentSessionContext ) 系统.线程.计时器 是否应在两个或多个回调执行中使用一个会话?

    1 回复  |  直到 15 年前
        1
  •  0
  •   Aaron Fischer    15 年前

    一个会话应该绑定到一个工作单元。听起来你每次回电话都需要一个新的会话。创建的会话非常轻。