NHibernate在断开连接的场景中

Pat*_*ers 6 nhibernate session

对于断开连接的场景,您对NHibernate(2.0.1 GA)的最新版本有何体验?

断开连接的场景是我从NHibernate获取一些对象图,断开与会话(和数据库连接)的连接,在对象图中做一些更改(删除集合,添加实体,更新实体),然后重新连接并保存....

Ste*_*ger 4

我们在客户端-服务器架构中尝试过这一点。现在我们正在转向 DTO(数据传输对象)。这意味着,分离的实体不再直接发送到客户端,而是专门的对象。

朝这个方向发展的主要原因不是NHibernate,它实际上是向客户端发送实体所需的序列化。虽然您可以在附加到会话时使用延迟加载(并且您会的!),但您需要从数据库获取所有引用来序列化它。

我们有很多指南而不是引用,还有很多已映射但未序列化的属性……这变得很痛苦。因此,将您真正想要序列化的内容复制到其自己的结构中要容易得多。

除此之外,独立工作也能取得很好的效果。

  • 请小心延迟加载,这将导致在访问分离实例上未加载的对象时引发异常。
  • 请注意并发性,实体在分离时发生更改的可能性很高。
  • 如果您需要某种安全性,或者即使您希望服务器自行进行一些数据更改,请务必小心。分离的对象可能会以任何状态返回。

  • @Patrick:我必须承认我不知道你在说什么。 (2认同)