我试图通过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.
我该如何更新数据库?
我找到了一个解决方案:这似乎是EF Core 1.1中的一个错误
我更改了迁移文件。
有关这方面的更多信息,请访问:https://thisworksonmymachine.com/2017/02/13/ef-core-the-setup-part-4/
在尝试获取IdentityServer4 EF迁移(SQLServer)时,我遇到了同样的问题。将Microsoft.EntityFrameworkCore更新到v2.1.3并将Microsoft.EntityFrameworkCore.Tools更新到v2.1.3似乎解决了这个问题。
如果您不关心过去的迁移,只需从头开始删除所有迁移。然后使用新架构重新创建第一个。应该工作得很好。
操作迁移总是一个冒险的想法......最简单的方法是清理平板,如果可能的话:从DBContext中取出表(这将删除表)创建迁移和更新数据库在上下文中恢复表并且做你的改变。创建迁移和更新数据库。
显然,您需要考虑备份和恢复数据和约束......