实体框架代码首次迁移和数据迁移

时间:2016-09-20 18:08:14

标签: entity-framework ef-code-first migration

我们正在使用Entity Framework Code First和迁移。我们让它运行没有任何问题。我们正在尝试将数据从旧数据库迁移到新数据库。我们需要删除数据库,创建所有表,插入数据,然后添加主键和外键。我们希望在EF中执行此操作,以便我们可以格式化要迁移的数据。我们已成功创建数据库,然后迁移数据,但旧数据库中的主键不会过来。我尝试在bulkinsert之前使用ExecuteSqlCommand:

ctx.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[TableName] ON");

但这不起作用,因为迁移scipts的标识符设置为true:

Id = c.Int(nullable: false, identity: true),

有没有办法将标识设置为false然后将数据插入数据库后,将标识设置为true?

1 个答案:

答案 0 :(得分:1)

您正在以正确的方式执行此操作(Id是一种身份,您启用了身份插入)。 SET IDENTITY_INSERT ON仅对会话(连接)有效,因此您只需要使用一个连接 此外,您必须使用INSERT语句(而不是EF SaveChanges)为数据库设定种子。