我需要通过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重命名主键列的正确方法是什么?
答案 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");