如何做NHibernate对象的深层复制?

时间:2010-07-12 17:41:14

标签: c# nhibernate object deep-copy

我正在尝试对NHibernate对象(代理包装器)进行深层复制。我想做一个懒惰加载的东西的副本,除了父对象的每个内部对象的Id,因为它应该在我保存新对象时生成,这是深拷贝的结果。

我曾尝试使用序列化,并尝试使用AutoMapper(我知道,它并不意味着这个,只是尝试了一下)。两者都没有产生我想要的东西。

如果没有更好的方法,我会考虑手动复制每个属性作为最后一个选项。

我发现了这个question,但它没有解决我想要的问题,因为我不愿意手动复制。

2 个答案:

答案 0 :(得分:1)

在我们继续克隆类时,我们必须完成更多自定义。

因此,在我们的案例中,手动克隆是可行的方法(即使我希望有更好的解决方案)。

答案 1 :(得分:0)

我们正在使用Copyable来克隆对象(深层克隆)。 Here你可以找到一篇描述Copyable的文章。它提供了允许克隆对象图的扩展方法(对于'对象'),并且通常对我们非常有效。 HTH。