Asp.net mvc 3 已将MVC3数据库移动到远程服务器。无法再删除。

Asp.net mvc 3 已将MVC3数据库移动到远程服务器。无法再删除。,asp.net-mvc-3,Asp.net Mvc 3,我创建了一个简单的MVC3项目,就像音乐商店示例一样。一切都很顺利。当时是将数据库移植到GoDaddy服务器的时候了,现在我无法从数据库中删除项目 这就是错误: DELETE语句与引用约束“Captions\U Item\U Captions”冲突。数据库“mattymattmofo\”表“dbo.Captions\”列“Item\u ItemId”中发生冲突。\r\n语句已终止 有人能帮忙吗?您的外键有问题。问题出在数据库中。无法删除使用外键绑定的行外键有问题。问题出在数据库中。您不能删除数据

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

这就是错误:

DELETE语句与引用约束“Captions\U Item\U Captions”冲突。数据库“mattymattmofo\”表“dbo.Captions\”列“Item\u ItemId”中发生冲突。\r\n语句已终止


有人能帮忙吗?

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

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

  • 删除约束条件-不建议使用和不良做法
  • 使用删除规则更新约束。您有以下选择:无操作、级联、设置Null、设置默认值
  • 现在,您的约束删除规则可能设置为“无操作”,这就是出现此错误的原因

    您可以在Management Studio中通过右键单击约束(在密钥文件夹中)->修改->扩展插入和更新SPCeification->删除规则来设置删除规则

    或者通过T-SQL脚本。关于如何做,有很多方法。

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

  • 删除约束条件-不建议使用和不良做法
  • 使用删除规则更新约束。您有以下选择:无操作、级联、设置Null、设置默认值
  • 现在,您的约束删除规则可能设置为“无操作”,这就是出现此错误的原因

    您可以在Management Studio中通过右键单击约束(在密钥文件夹中)->修改->扩展插入和更新SPCeification->删除规则来设置删除规则


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

    实体框架?Nhibernate?实体框架?Nhibernate?我正在使用GoDaddy在共享服务器上托管。当我尝试访问它时,它会显示“您没有以数据库所有者或系统管理员的身份登录”,并且不允许我更改任何内容。是否有其他方法解决此问题?是否确定您不是以只读数据库用户身份登录?在GoDaddy管理面板中,您应该找到正确的sql server用户和密码。不过我对GoDaddy服务不太熟悉。也许您可以运行SQL脚本,在他们的管理面板中重新创建foreing密钥约束?我正在使用GoDaddy在共享服务器上托管。当我尝试访问它时,它会显示“您没有以数据库所有者或系统管理员的身份登录”,并且不允许我更改任何内容。是否有其他方法解决此问题?是否确定您不是以只读数据库用户身份登录?在GoDaddy管理面板中,您应该找到正确的sql server用户和密码。不过我对GoDaddy服务不太熟悉。也许您可以运行SQL脚本,在他们的管理面板中重新创建foreing键约束?
        //
        // 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");
        }