NHibernate /多个会话和嵌套对象

时间:2010-04-26 06:48:19

标签: c# nhibernate session

我们在富客户端应用程序中使用NHibernate。它是一个非常开放的应用程序(用户搜索数据集或创建新数据集,更改数据并保存数据集。 我们让会话保持打开状态,因为有时我们必须延迟加载对象的一些属性(嵌套对象结构)。

这意味着一个大问题

  • 如果我们让会话保持打开状态,db(MySQL)会关闭连接,我们无法找到它,并且在访问数据库时会抛出异常(套接字通信错误)(我们正在考虑测试数据库连接)在访问对象之前 - 但这也不是最佳的,另一个选择是设置db连接的超时,但这似乎并不好。

那么 - 是否可以将会话重新连接到新的数据库连接?

另一个问题

  • 是否可以从一个会话中获取一个对象,然后将其重新附加到另一个会话? (我经常听说session.lock应该适用于此 - 但是这在我们的应用程序中不能很好地工作 - 所以我最终从会话中获得了一个“新鲜”的对象并手动复制数据 - 这是一点点麻烦的)

对此有何想法?

1 个答案:

答案 0 :(得分:0)

所以,现在我已经开始改变我们的应用程序设计了 - 到目前为止它似乎值得改变。

我们的主要问题是我们使用了非常长时间运行的事务 - 所以我将其更改为更加理智的方法(使用非常短暂的事务),到目前为止它运行良好。

关闭连接不再有问题。