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

Entity framework 实体框架代码首次迁移和数据迁移,entity-framework,ef-code-first,migration,Entity Framework,Ef Code First,Migration,我们首先在迁移中使用实体框架代码。我们让它运行起来没有任何问题。我们正在尝试将数据从旧数据库迁移到新数据库。我们需要删除数据库,创建所有表,插入数据,然后添加主键和外键。我们希望在EF中执行此操作,以便可以格式化正在迁移的数据。我们已经成功地创建了数据库,然后在上面迁移了数据,但是主键在旧数据库中,而没有迁移过来。我尝试在bulkinsert之前使用executeSql命令: ctx.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[T

我们首先在迁移中使用实体框架代码。我们让它运行起来没有任何问题。我们正在尝试将数据从旧数据库迁移到新数据库。我们需要删除数据库,创建所有表,插入数据,然后添加主键和外键。我们希望在EF中执行此操作,以便可以格式化正在迁移的数据。我们已经成功地创建了数据库,然后在上面迁移了数据,但是主键在旧数据库中,而没有迁移过来。我尝试在bulkinsert之前使用executeSql命令:

ctx.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[TableName] ON");
但这不起作用,因为迁移科学将idenity设置为true:

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

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

您使用的方法是正确的(Id是一个标识,您启用了标识插入)。SET IDENTITY_INSERT ON仅对会话(连接)有效,因此您只需要使用一个连接。
此外,还必须使用INSERT语句(而不是EF SaveChanges)对数据库进行种子设定