使用ObjectContext。我想通過ExecuteStoreCommand傳遞SQL查詢來做到這一點,因爲我不想僅僅爲了刪除它們而檢索所有相關實體。刪除類別及其子女/孫輩
類別表是這樣:
CatID | CatName | ParentID
哪裏CATID是主鍵到PARENTID FK
我希望刪除類別以及所有那些 是在它之下。可以2+水平的深亞貓的,所以不同的PARENTID的
想我能做到這一點,如下,只是設置在數據庫中的外鍵刪除選項 「級聯」,但它不會讓我和它似乎並不想通過使用CatID - ParentID關係將級聯刪除關閉,並且查詢獲取 由此非常FK約束停止。
public RedirectToRouteResult DelCat(int CatID)
{
if (CatID != 0)
{
_db.ExecuteStoreCommand("DELETE FROM Categories WHERE CatID={0}", CatID);
_db.SaveChanges();
}
return RedirectToAction("CatManage");
}
當類別下降三級或更多級別時會發生什麼情況。說:美國>紐約>皇后區。如果我通過它,它將僅刪除美國和紐約,因爲皇后ParentID等於紐約CatID而不是最初通過的ParentID。離開一隻孤兒貓。不是說FK會讓我在任何地方做。 – LaserBeak
@LaserBeak對不起,您沒有提供任何樣本數據或表明有多個關卡。我建議澄清這個問題,這樣別人就不會像我那樣感到困惑 - 我假設了一個簡單的類別/子類別模型。 –