以下のようなオブジェクトがあります。
public class AdminMenuItem : BaseEntity
{
public int? ParentMenuItemId { get; set; }
public string Name { get; set; }
public string Url { get; set; }
public AdminMenuItem ParentMenuItem { get; set; }
}
2つのメニュー項目を追加しました。1 つは、親メニューを持たない A です。もう 1 つの B と A は、B の親メニュー項目です。
A を削除すると、以下の例外がスローされます。
The DELETE statement conflicted with the SAME TABLE REFERENCE constraint "FK_dbo.AdminMenuItem_dbo.AdminMenuItem_ParentMenuItemId".
データベース「A61DB」、テーブル「dbo.AdminMenuItem」、列「ParentMenuItemId」で競合が発生しました。ステートメントは終了されました
親の削除中に子アイテムも削除するには、どのような構成を行う必要がありますか? ループに入れて手動で行う必要がありますか、またはエンティティフレームワーク 5 で行うのに十分な方法はありますか? WillCascadeOnDeleteを使用しようとしましたが、成功しませんでした。
また、子オブジェクトの外部キーを null に設定する方法はありますか? (これはオプションです)