我有七个表,其中包含数百行相关数据。这些表格建立了相当复杂的报价工具,增加了材料和成本等。
是否可以使用EF Core和几行代码加载所有这些实体,然后将它们写回为新实体,但在生成新ID的过程中并正确地将所有彼此关联起来,所以我最终得到了完整复制所有数据。然后,我可以在Header表上更改CompanyID,瞧,一家公司拥有模板的完整副本,他们现在可以自行配置。
我将要编写一个程序,一个接一个地加载实体,循环遍历,一个接一个地保存行,等等,存储id,等等。我很高兴编写该过程,因为看不到自动的方法。
答案 0 :(得分:0)
我想到的唯一方法就是使用EF Core。由于它不支持篡改主键,因此,如果您不想创建过程,可以尝试执行类似的操作,但是我可以看到一种对主键执行级联更新的方法。这种代码将允许您根据需要使用自定义ID更改主键。您仍然需要循环。所以,是的,您首先更新主表,然后在其下更新依赖于该主表的表。
foreach(var row in your_entity){
your_context.your_new_entity.AddObject(row);
your_context.SaveChanges();
row.Id = your_id;
for(var row2 in your_depending_entity){
row2.foreignkey = your_id
.... // and so on
}
}