您对最新版本的NHibernate(2.0.1 GA)有关断开连接方案的体验有哪些?
断开连接的场景是我从NHibernate获取一些对象图,断开与会话(和数据库连接)的连接,在对象图中做一些更改(在集合中删除,添加实体,更新实体),然后重新连接并保存。 ...
答案 0 :(得分:4)
我们在客户端 - 服务器架构中尝试过这种方法。现在我们转向DTO(数据传输对象)。这意味着,分离的实体不再直接发送给客户端,而是专门的对象。
向这个方向发展的主要原因不是NHibernate,它实际上是将实体发送到客户端所需的序列化。虽然您可以在连接到会话时使用延迟加载(并且您将会!),但您需要从数据库获取所有引用以对其进行序列化。
我们有很多Guids而不是引用和许多映射但未序列化的属性......它变得很痛苦。因此,将您真正想要序列化的内容复制到自己的结构中要容易得多。
除此之外 - 分离工作可以很好地运作。
答案 1 :(得分:4)
您可以查看会话方法 SaveOrUpdateCopy 和合并。
这是一篇文章,为您提供更多详细信息: NHibernate feature: SaveOrUpdateCopy & Merge