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");
}