我们现在使用EntityFramework CodeFirst Migration . 在我们使用EntityFramework CodeFirst Migration之前,我们的数据库表和索引是很久以前创建的 . 我们的表是myTable,列为vchMyColumnA和索引ColumnA . 由于我们使用了EntityFramework CodeFirst Migration,因此我们使用EntityFramework CodeFirst Migration向myTable添加新列 .
我们需要删除Index ColumnA .
-
我们是否需要通过EntityFramework CodeFirst Migration来实现,或者我们可以运行脚本来删除索引吗?
-
如果我们需要通过EntityFramework CodeFirst Migration删除索引,我该怎么办?在Package Manager Console中,我键入了add-migration DropColumnAIndex,并打开了迁移代码DropColumnAIndex,并添加了以下代码:
public partial class DropColumnAIndex : DbMigration
{
public override void Up()
{
DropIndex("dbo.myTable", new[] { "ColumnA" });
}
public override void Down()
{
CreateIndex("dbo.myTable", "vchMyColumnA");
}
}
然后我输入了update-database . 没有错误,我可以看到数据库中的迁移(从__MigrationHistor中选择*),但索引ColumnA仍然存在 .
谢谢 .
1 回答
对不起,很难在评论中写这个 . 您可以在迁移中注入等效的SQL: