我需要使用 EF 将数据从一个数据库复制到另一个数据库。例如。我有以下表关系:Forms->FormVersions->FormLayouts...我们在两个数据库中都有不同的表单,我们希望将它们收集到一个数据库中。基本上,我想从一个数据库递归加载 Form 对象,并将其及其所有引用保存到另一个数据库。另外,如果第二个数据库中存在具有相同 ID 的对象,我还需要更改对象和相关对象的 ID。
到目前为止我有以下代码:
Form form = null;
using (var context = new FormEntities())
{
form = (from f in context.Forms
join fv in context.FormVersions on f.ID equals fv.FormID
where f.ID == 56
select f).First();
}
var context1 = new FormEntities("name=FormEntities1");
context1.AddObject("Forms", form);
context1.SaveChanges();
我收到错误:“只有当属性的当前值为 null 时才能设置 EntityKey 属性。”
你能帮助实施吗?
最简单的解决方案是创建表单(新对象)的副本并添加该新对象。否则你可以尝试:
- Call
context.Detach(form)
- 设置表格的
EntityKey
to null
- Call
context1.AddObject(form)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)