实体框架说外键不存在,但它确实存在

时间:2015-11-17 21:09:31

标签: c# sql .net sql-server entity-framework

我正在尝试使用以下代码运行实体框架(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");
}

1 个答案:

答案 0 :(得分:0)

我重新启动了SQL Express和VS2015,这似乎解决了这个问题。