c# - 如何在 ActionResult Delete 上从 objA 中删除包含的 objB?

标签 c# asp.net-mvc-3 entity-framework-4.1

尝试在删除操作中从对象 A 中删除 B 的 ICollection 但出现此错误:

“错误DELETE语句与REFERENCE约束冲突”

有道理,但我只是不知道如何先删除包含的 B 的 ICollection 或认为它们会自动删除:

 public ActionResult DeleteConfirmed(int id)
    {            
        A objA = db.As.Find(id);
        //  **NOTE:**  objA has a ICollection of objB's here that I tried to iterate and
        //             delete them here using: foreach (var i in A.Bs) {db.Bs.Remove(i);} : didn't work
        db.As.Remove(objA);
        db.SaveChanges();
        return RedirectToAction("Index");
    }

最佳答案

在您的数据库中,您需要编辑外键约束并指定 DELETE CASCADE 选项,这样当您删除该对象时,它的所有引用也会被删除。

enter image description here

参见 SQL Server Foreign Key Update and Delete Rules了解详情。

关于c# - 如何在 ActionResult Delete 上从 objA 中删除包含的 objB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7866952/

相关文章:

asp.net-mvc-3 - 从下拉列表中删除项目

c# - 如何打开与我的 MVC 项目相关的文本文件?

ef-code-first - EF代码首先删除许多场景中的所有子对象?

c# - 如何在 ADO.NET EF 4.1 中插入记录?

c# - 在 .NET 中从 NetworkStream 读取的正确方法是什么

c# - 连续显示字符串的字符并为标签 c# 制作计时器

asp.net-mvc-3 - 为什么我必须在 mvc 的每个部分页面中调用或声明 jquery.validate.unobtrusive.min.js

entity-framework-4.1 - HasRequired 和 HasOptional 有什么区别

c# - 可以在静态/常量成员上使用处理器 #if 吗?

c# - 用于频繁读取和罕见写入操作的并发集合 (.NET)