【问题标题】:Entity Framework Code First Migration and Data Migrations实体框架代码优先迁移和数据迁移
【发布时间】:2016-09-20 18:08:14
【问题描述】:

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

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

但这不起作用,因为迁移 scipts 将身份设置为 true:

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-29
      • 2017-10-31
      • 1970-01-01
      • 2013-09-16
      • 1970-01-01
      相关资源
      最近更新 更多