我对数据库中某些主键的命名有疑问。在我的开发系统上,主键约束被命名为PK_FullTableName
. 现在在生产系统上,所有约束都被命名PK_PartofTableName_3214EC27164452B1
(每个表都有不同的十六进制字符)。
我遇到的问题是迁移。我有一个基于代码的迁移,它应该更改表的主键,因此必须删除旧的约束/主键DropPrimaryKey("FullTableName", new[] { "Field1", "Field2" });
在我的开发系统上一切正常,在生产系统上我得到一个 SQL 异常,即PK_FullTableName
找不到约束并且我无法迁移。
我不知道为什么实体框架在这两个系统上命名的约束不同。有谁知道这种行为取决于什么?这是来自 EF 还是来自数据库(MSSQLExpress)的命名?有没有解决方法?