gpt4 book ai didi

c# - NHibernate session ObjectDisposedException

转载 作者:行者123 更新时间:2023-11-30 18:11:01 25 4
gpt4 key购买 nike

有没有办法验证一个 Session 是否已经被 NHibernate 处理掉了?

我在 Session 上有一个包装类,它有自己的 Finalizer 和 IDispoable 实现,但是如果在我自己在我的类中处理它之前 Session 被释放,我最终会收到一个 ObjectDisposedException。

我真的不想用

来包装我的清理代码
try {
...
}
catch (ObjectDisposedException) { }

但我不确定是否还有其他方法。 Session.IsOpen 和 Session.IsActive 属性似乎没有提供任何可靠信息让我确认 session 已被处理。

有关完整源代码,您可以在 Assembla 上查看它.

最佳答案

好的,只是看了一下您的代码。我不知道这是否正是问题所在,但您是从对话处理方法中调用 End() 的,反过来尝试重新连接并处理 session ..如果您在此之前明确调用了 End() ,您将得到您所得到的,请避免调用。我认为您不必担心在 session 处理之前回滚事务,因为这是隐式完成的。只是快速浏览了一下,但我认为我真的很喜欢您的实现。

关于c# - NHibernate session ObjectDisposedException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/508938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com