0
我试图运行的实体框架(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");
}
试试'ALTER TABLE dbo.MyTable DROP CONSTRAINT FK_MyTable_MyOtherTable' – DavidG
你可能会写一个不正确的表名或者fk名 –
你能检查最后得到的字符串是什么,可能需要包含一些空格。 – Baskar