2014-02-21 96 views
0

我试图在MVC3中实现删除操作,但我得到的点,我想删除的对象有其他表中的依赖关系,这就是为什么我得到:从数据库中删除对象时,它有依赖关系

DELETE语句冲突与基准约束

这是我在控制器方法:

[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删除方法将做的工作,但它不会。 所以我试图想出一种方法来高效地将其与所有依赖关系一起移除。我知道我可以通过查看特定Director可能引用的所有表来手动完成。但我希望如果框架提供它自己的实现。

回答

2

SQL CasCade delete中有一个属性,可以在从表中删除父记录时自动删除依赖项。

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

Entity Framework (EF) Code First Cascade Delete

我希望这将是对你有所帮助。