我正在尝试使用以下代码运行实体框架(v6.1.3)迁移更新:
public override void Up()
{
Sql("IF EXISTS (SELECT name FROM sys.foreign_keys WHERE name = 'FK_MyTable_MyOtherTable') " +
"ALTER TABLE dbo.MyTable DROP FK_MyTable_MyOtherTable");
}
但是当我运行update-database
命令时,它会继续抛出错误:
' FK_MyTable_MyOtherTable'不是约束。无法删除约束。查看以前的错误。
如果我在SQL Server Management Studio中运行SQL,则不会显示任何错误,并且会删除外键。
修改:刚刚测试了下面的代码,它也能正常运行。有什么区别?
public override void Up()
{
DropForeignKey("dbo.MyTable", "FK_MyTable_MyOtherTable");
}
答案 0 :(得分:0)
我重新启动了SQL Express和VS2015,这似乎解决了这个问题。