我有以下LINQ to SQL对象(例如)
class Parent{
int id; // primary key
IEnumerable<Child> children;
}
class Child{
int id; // primary key
string field1;
int field2;
}
我需要深度克隆一个
Parent
并将其保存到数据库中,但是需要子项的副本,即不引用现有的子项。我已经使用这种方法来进行克隆,但是我正在寻找一种优雅的方式来迭代父对象和子对象属性(考虑到可能有大量的子对象,级联深度可能超过1级),并将它们的主键设置为0,以便在将克隆的对象提交到数据库时,LINQ to SQL会负责创建新的子对象。