实体迁移。无法删除约束。查看以前的错误

时间:2015-05-25 00:51:28

标签: c# entity-framework ef-migrations

以下是产生此错误的代码。我已经尝试过重命名AddForeignKey的解决方案,但错误是一样的。

  

' PK_dbo.Item'不是约束。
  无法删除约束。查看以前的错误。

你能提出一些解决方案吗?

public override void Up()
{
    DropForeignKey("dbo.AddGallery", "item_fk_id", "dbo.Item");
    DropForeignKey("dbo.ExtraFieldValue", "item_fk_id", "dbo.Item");
    DropPrimaryKey("dbo.Item");
    AddColumn("dbo.Item", "id", c => c.Int(nullable: false, identity: true));
    AddPrimaryKey("dbo.Item", "id");
    AddForeignKey("dbo.AddGallery", "item_fk_id", "dbo.Item", "id");
    AddForeignKey("dbo.ExtraFieldValue", "item_fk_id", "dbo.Item", "id");
    DropColumn("dbo.Item", "item_id");
}

public override void Down()
{
    AddColumn("dbo.Item", "item_id", c => c.Int(nullable: false, identity: true));
    DropForeignKey("dbo.ExtraFieldValue", "item_fk_id", "dbo.Item");
    DropForeignKey("dbo.AddGallery", "item_fk_id", "dbo.Item");
    DropPrimaryKey("dbo.Item");
    DropColumn("dbo.Item", "id");
    AddPrimaryKey("dbo.Item", "item_id");
    AddForeignKey("dbo.ExtraFieldValue", "item_fk_id", "dbo.Item", "id");
    AddForeignKey("dbo.AddGallery", "item_fk_id", "dbo.Item", "id");
}

2 个答案:

答案 0 :(得分:2)

我认为主键不再存在,这就是为什么它不能被删除。

答案 1 :(得分:0)

我找到了解决这个问题的方法。因为我试图更改现有主键名称,所以我在迁移时遇到错误,因为该主键已被其他表引用。所以解决方案只是添加 [Column(" id")] DataAnnotation而不是进行迁移。主键的列名已成功更改,没有任何错误。