使用 Entity Framework 核心迁移更改主键
Changing Primary Key using Entity Framework Core Migrations
我正在尝试通过 Entity Framework 核心迁移更改 table 的主键:
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.
如何更新数据库?
我找到了解决办法:
这似乎是 EF Core 1.1
中的错误
我更改了迁移文件。
可以在此处找到有关此的更多信息:https://thisworksonmymachine.com/2017/02/13/ef-core-the-setup-part-4/
操纵迁移总是一个冒险的想法...
如果可能的话,最简单的方法是清理石板:
从 DBContext 中取出 table(这将删除 table)
创建迁移并更新数据库
在上下文中恢复 table 并进行更改。
创建迁移并更新数据库。
显然,您需要考虑数据的备份和恢复以及约束...
以下解决方案并不适用于所有人。即,如果您在多个环境中建立了数据库。
如果您不关心您的迁移,只需从头开始删除所有迁移。然后用你的新模式重新创建第一个。应该可以正常工作。
在尝试获取 IdentityServer4 EF 迁移 (SQLServer) 时,我遇到了同样的问题。将 Microsoft.EntityFrameworkCore 更新到 v2.1.3 和 Microsoft.EntityFrameworkCore。工具到 v2.1.3 似乎解决了这个问题。
我正在尝试通过 Entity Framework 核心迁移更改 table 的主键:
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.
如何更新数据库?
我找到了解决办法: 这似乎是 EF Core 1.1
中的错误我更改了迁移文件。
可以在此处找到有关此的更多信息:https://thisworksonmymachine.com/2017/02/13/ef-core-the-setup-part-4/
操纵迁移总是一个冒险的想法... 如果可能的话,最简单的方法是清理石板: 从 DBContext 中取出 table(这将删除 table) 创建迁移并更新数据库 在上下文中恢复 table 并进行更改。 创建迁移并更新数据库。
显然,您需要考虑数据的备份和恢复以及约束...
以下解决方案并不适用于所有人。即,如果您在多个环境中建立了数据库。
如果您不关心您的迁移,只需从头开始删除所有迁移。然后用你的新模式重新创建第一个。应该可以正常工作。
在尝试获取 IdentityServer4 EF 迁移 (SQLServer) 时,我遇到了同样的问题。将 Microsoft.EntityFrameworkCore 更新到 v2.1.3 和 Microsoft.EntityFrameworkCore。工具到 v2.1.3 似乎解决了这个问题。