2014-02-21 100 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

我希望這將是對你有所幫助。