使用实体框架核心迁移更改主键

时间:2017-05-05 07:11:43

标签: primary-key entity-framework-core ef-migrations

我正在尝试通过Entity Framework Core Migrations更改表的主键:

protected override void Up(MigrationBuilder migrationBuilder)
{
        migrationBuilder.DropPrimaryKey(
            name: "PK_Permissions",
            table: "Permissions");
}

当我尝试更新数据库时,收到以下错误消息:

To change the IDENTITY property of a column, the column needs to be dropped and recreated.

如何更新数据库?

4 个答案:

答案 0 :(得分:2)

我找到了一个解决方案: 这似乎是EF Core 1.1中的一个错误

我更改了迁移文件。

有关此内容的更多信息,请访问:https://thisworksonmymachine.com/2017/02/13/ef-core-the-setup-part-4/

答案 1 :(得分:2)

如果您不关心过去的迁移,只需从头开始删除所有迁移即可。然后使用新架构重新创建第一个。应该就可以了。

答案 2 :(得分:2)

在尝试进行IdentityServer4 EF迁移(SQLServer)时,我遇到了同样的问题。将Microsoft.EntityFrameworkCore.v更新至v2.1.3,将Microsoft.EntityFrameworkCore.Tools更新至v2.1.3,似乎可以解决此问题。

答案 3 :(得分:1)

操纵迁移总是一个冒险的想法... 如果可能的话,最简单的方法是清理板岩: 从DBContext中取出表(这将删除表) 创建迁移并更新数据库 在上下文中还原表并进行更改。 创建迁移并更新数据库。

显然,您需要考虑数据和约束的备份和还原...