0

在 ThreadLocal 中存储 NHibernate 会话是否有意义,假设它是线程安全的并且可以解决会话的延迟加载问题是否安全?只要线程正在执行,假设 Session 就可以使用是否安全?就线程而言,我说的是 HttpRequet。

此外,我会用完 NHibernate 的会话吗?有最大会话数吗?如果我有很多线程可以吗?

4

1 回答 1

2

NHibernate 会话不是线程安全的。只要您将单个会话与一个应该可以正常工作的会话相关联。

如果您要进行 http 请求,则最好使用每个请求实现的会话,即在请求开始时打开会话,在请求结束时关闭会话。在这种情况下,可以安全地假设只要线程正在执行会话就可用。

通常 NHibernate 不会用完会话,但是更好的做法是使用生命周期可能最短的会话。

于 2012-04-26T05:13:01.140 回答