【问题标题】:Delete object from database when it has dependencies有依赖关系时从数据库中删除对象
【发布时间】:2014-02-21 04:28:00
【问题描述】:

我试图在 MVC3 中实现删除操作,但我发现我要删除的对象在其他表中有依赖关系,这就是我得到的原因:

DELETE 语句与 REFERENCE 约束冲突

这是我在控制器中的方法:

[HttpPost]
public ActionResult Delete(int? id)
{
    repo.DeleteDirector(id);
    return View("index");
}

这就是我在我的存储库中删除它的方式:

void DeleteDirector(int? id)
{
    Director d = dc.Directors.FirstOrDefault(dir => dir.Id == id);
    dc.Directors.Remove(d);
    dc.SaveChanges();
}

我希望简单的 LINQ Remove 方法能够完成这项工作,但它不会。 因此,我正在尝试想一种方法来有效地删除所有依赖项。我知道我可以通过查看可能引用特定 Director 的所有表来手动完成。但我希望框架是否为它提供自己的实现。

【问题讨论】:

    标签: c# asp.net asp.net-mvc-3 cascading-deletes


    【解决方案1】:

    SQLCasCade delete 中有一个属性可以在父记录从表中删除时自动删除依赖关系。

    通过查看上面的代码,我假设您首先使用带有存储库模式的 EF 代码。如果是这种情况,那么您应该在配置中提供级联删除。你可以参考下面的链接

    Entity Framework (EF) Code First Cascade Delete

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-15
      • 2011-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多