如何使用代码优先方法更改主键的数据类型?

问题描述 投票:0回答:1

有一个使用 GUID 作为主键的遗留代码库,并且表已经存在于生产中并具有 10-2000 万条记录。现在,我想使用代码优先方法将主键数据类型从 GUID 更改为 int,以实现更好的索引和更少的碎片。 数据库是SQL Server。

查了很多网站都没有解决。 只是想检查一下过去是否有人已经这样做过。 EF 核心。

sql-server entity-framework-core entity-framework-6 c#-8.0
1个回答
0
投票

您只需将数据类型从 Guid 更改为 int,添加迁移并更新数据库即可。但是,由于 EF Core 需要重新创建标识列,因此属性名称也必须更改。由于该列称为 Id 并且也具有此 Key 属性,因此 Id 会自动递增 1。

来自:

[Key]
public Guid PurchaseId { get; set; }

致:

[Key]
public int Id { get; set; }
© www.soinside.com 2019 - 2024. All rights reserved.