如何在fluent-migrator中重命名表的主键?

时间:2013-11-27 22:23:48

标签: c# mysql fluent-migrator

我需要通过fluent-migrator重命名现有表的主键,以便automapper可以自动检测列。

对于大多数列,这是一个简单的1)删除该列2)上的任何外键约束删除该列的索引,3)重命名该列。我历史上一直这样做:

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

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

2 个答案:

答案 0 :(得分:4)

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

Execute.Sql("EXEC sp_rename N'[Current_Primary_Key_Name]', '[New_Primary_Key_Name]', 'object';");

答案 1 :(得分:3)

只要它不是身份(自动增量)列,这样的事情应该有效:

Delete.PrimaryKey("PRIMARY KEY").FromTable("mytable");