我正在尝试通过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.
如何更新数据库?
答案 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中取出表(这将删除表) 创建迁移并更新数据库 在上下文中还原表并进行更改。 创建迁移并更新数据库。
显然,您需要考虑数据和约束的备份和还原...