将MVC3数据库移动到远程服务器。不能再删除了。

时间:2012-05-25 01:51:02

标签: asp.net-mvc-3

我创建了一个简单的MVC3项目,就像Music Store示例一样。一切都很好。是时候将数据库移植到GoDaddy服务器了,现在我无法从数据库中删除项目。

这是错误:

  

DELETE语句与REFERENCE约束\“Captions_Item_Captions \”冲突。冲突发生在database \“mattymattmofo \”,table \“dbo.Captions \”,列'Item_ItemId'。\ r \ n该语句已被终止。

    //
    // POST: /NavigationManager/Delete/5

    [Authorize(Roles = "Administrator")]
    [HttpPost, ActionName("Delete")]
    public ActionResult DeleteConfirmed(int id)
    {
        Item item = db.Items.Find(id);
        db.Items.Remove(item);
        db.SaveChanges();
        return RedirectToAction("Index");
    }

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

您的外键有问题。问题出在数据库中。您无法删除与外键绑定的行

答案 1 :(得分:1)

在您的数据库中,项目(父表)通过外键键与Captions(子表)链接。这意味着当您从Items表中删除行时,仍然可能与Captions表中的此行有连接。因此生成约束以保持数据库完整性。你可以做两件事来解决这个问题:

  1. 删除约束 - 不推荐和不良做法
  2. 使用删除规则更新约束。您有以下选择:无操作级联设置空设置默认
  3. 现在您的约束删除规则可能设置为 No Action ,这就是您遇到此错误的原因。

    您可以通过右键单击约束(在Keys文件夹中)设置Management Studio中的删除规则 - >修改 - >扩展INSERT和UPDATE Spcecification - >删除规则。

    或者通过T-SQL脚本。关于如何做到这一点有很多examples