10

我需要通过重命名现有表的主键,FluentMigrator以便自动映射器可以自动检测该列。

对于大多数列,只需1)删除该列上的任何外键约束2)即可删除该列的索引3)并重命名该列。我在历史上是通过以下方式做到这一点的:

Delete.ForeignKey("foreignkeyconstraint").OnTable("mytable");
Delete.Index("UserId").OnTable("mytable");
Rename.Column("UserId").OnTable("mytable").To("UserInfo_id");

但是,这似乎不适用于主键,因为我无法删除该列上自动创建的索引。用 重命名主键列的正确方法是什么FluentMigrator

4

2 回答 2

7

使用以下方法调用重命名您的主键 (SQL Server)

Execute.Sql("EXEC sp_rename N'[Current_Primary_Key_Name]', '[New_Primary_Key_Name]', 'object';");
于 2014-06-25T10:32:25.340 回答
3

只要它不是标识(自动增量)列,这样的东西就应该起作用:

Delete.PrimaryKey("PRIMARY KEY").FromTable("mytable");
于 2013-12-01T22:51:57.047 回答