实体框架:导入实体树

时间:2014-03-25 14:23:44

标签: c# entity-framework

我有一个场景,我希望将实体树序列化为XML文件,然后使用Entity Framework将该实体树恢复到另一个数据库。我很好奇我应该如何添加子实体?我应该简单地反序列化树,然后在父节点上调用context.AddToXXX(xxx)吗?这会导致所有的孩子吗?

编辑:如果树已经存在但序列化数据不同,那么当前数据会发生什么?

1 个答案:

答案 0 :(得分:1)

如果您使用Context.DbSet.Add方法,它会将对象图中的所有实体标记为新,并尝试在SaveChanges时插入它们。

如果您使用Context.DbSet.Attach方法,则上下文将开始跟踪所有实体,但它会将所有实体标记为未经修改,并且在SaveChanges时不会对它们执行任何操作。< / p>

在任何一种情况下,您都可以在调用Context.Entry().State之前使用SaveChanges显式设置实体的状态。