深度克隆带有孩子的对象

时间:2016-02-09 08:35:34

标签: .net automapper valueinjecter

我正在寻找一个解决方案,我可以复制具有多个级别子级的对象,更新主键(以及子级的外键)并再次将其保存在DB上。就这样,我可以使用新密钥获得整个对象的精确副本。

我尝试使用ValueInjuecter并且它确实创建了一个深层副本,但我不知道如何更新子项的外键以使它们指向新创建的对象。

我也尝试过AutoMapper,类似的事情发生了。

有谁知道我怎么做到这一点?

2 个答案:

答案 0 :(得分:2)

只需编写手动代码即可进行复制。它可能需要30分钟左右。您也可以尝试使用BinaryFormatter进行.NET克隆,但这对您的PK / FK问题没有帮助。

答案 1 :(得分:0)

可能最好和最高效的解决方案是创建自己的库,以递归方式为每个孩子使用MemberwiseClone。