我创建了一个简单的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");
}
有人可以帮忙吗?
答案 0 :(得分:3)
您的外键有问题。问题出在数据库中。您无法删除与外键绑定的行
答案 1 :(得分:1)
在您的数据库中,项目(父表)通过外键键与Captions(子表)链接。这意味着当您从Items表中删除行时,仍然可能与Captions表中的此行有连接。因此生成约束以保持数据库完整性。你可以做两件事来解决这个问题:
现在您的约束删除规则可能设置为 No Action ,这就是您遇到此错误的原因。
您可以通过右键单击约束(在Keys文件夹中)设置Management Studio中的删除规则 - >修改 - >扩展INSERT和UPDATE Spcecification - >删除规则。
或者通过T-SQL脚本。关于如何做到这一点有很多examples。