使用 modelbuilder.HasKey() 导致 entity framework 新迁移出错

Using modelbuilder.HasKey() causes error in entity framework new migrations

我有一些实体将复合键作为主键。 我使用 fluentApi 配置它们来设置组合键,例如:

modelBuilder.Entity<EntityWithCompositeKey>().HasKey(entity => new { entity.Property1, entity.Property2});

但是当我想在添加新迁移后更新数据库时出现错误:

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

经过一番挖掘,我意识到这是因为 fluentApi 中设置组合键的那些设置,我认为 entity framework 想要更改实体的主键以设置新的组合键,我得到了这个错误。 .. 我对吗???我哪里错了?

由于这个错误,我无法更新我的数据库,每次我需要删除迁移文件夹和数据库并重新创建它们,以便可以进行新的更改,而且随着我们接近生产,它变得非常烦人。

我正在使用 Entity Framework 5rc1 和 Asp.Net Core 3.1

更新列的主键时,需要在不删除迁移文件的情况下,删除迁移记录中的方法migrationBuilder.AlterColumn。 这是初始记录。

然后我添加一个实体和 re-migrate。删除Up方法中的migrationBuilder.AlterColumn

数据库中的密钥已更改。