【发布时间】:2016-12-26 21:45:51
【问题描述】:
我希望能够查询会话工厂以获取所有已创建且仍处于打开状态的会话的列表。似乎应该在某个地方进行跟踪,即使它不是公开的或从工厂直接访问的。
【问题讨论】:
-
您可以自己实现会话工厂。如果请求会话,请将其添加到会话列表中。如果它关闭,则将其从列表中删除。
-
呃..我可以看到它是如何工作的,基本上是在我请求会话时创建一个“正在运行”的 sessionid 的哈希表。将会话本身存储为该键引用的对象。这很容易,但看起来很混乱。会话结束时,我必须从哈希表中删除会话。由于我没有按请求使用会话,因此我真的想要一个更简洁的实现。我希望我可以以某种方式简单地查询 _sessionfactory 以获取打开的会话,但我非常感谢@peer 的输入。
-
NH 分析器会这样做吗?我从未使用过它,但它是一种用于跟踪 NH 正在做什么的流行工具。
-
@Cole Hey Cole,我用过 NH Prof 很多次,它是一个很棒的工具。它坐下并监视活动,您可以看到会话打开并查看与每个会话相关联的 sql 活动,但我不确定 NH 监视 dll 是如何连接到工作流中的,或者这是否能满足我的需要。不过感谢您的评论!
标签: c# .net nhibernate session