实体框架说外键不存在,但确实存在
本文关键字:存在 不存在 框架 实体 | 更新日期: 2023-09-27 18:22:14
我正在尝试运行实体框架(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"不是约束。无法删除约束。请参阅以前的错误。
如果我在SQLServerManagementStudio中运行SQL,则不会显示任何错误,并且会删除外键。
编辑:刚刚在下面测试了这段代码,它也能正常工作。有什么区别?
public override void Up()
{
DropForeignKey("dbo.MyTable", "FK_MyTable_MyOtherTable");
}
我重新启动了SQL Express和VS2015,这似乎解决了问题。