Tworze drzewo katalogowe z ASP MVC. Tak wygląda mój model klasy:
public class Node
{
public int Id { get; set; }
public String Name { get; set; }
public Node Parent { get; set; }
public int? ParentId { get; set; }
}
Stworzyłem sobie przycisk, po wciśnięciu którego usuwany jest zaznaczony katalog. Wszystko gra, ale problem pojawia się w momencie gdy katalog zawiera w sobie podkatalogi. Chciałbym by w takiej sytuacji usuwał się folder wraz z wszystkimi podkatalogami. Lecz gdy tak próbuję zrobić pojawia się wyjątek
SqlException: The DELETE statement conflicted with the SAME TABLE REFERENCE constraint "FK_dbo.Nodes_dbo.Nodes_Parent_Id". The conflict occurred in database "TreeDB", table "dbo.Nodes", column 'ParentId'.
The statement has been terminated.
Pewnie dzieję się tak dlatego, że po próbie usunięcia folderu w bazie danych zostają rekordy, których ParentId nie istnieje. Jak mogę rozwiązać ten problem?
Tutaj screen z przykładowych danych w bazie danych:

A tutaj akcja usuwania folderu
[HttpPost]
public HttpStatusCodeResult Delete(int id)
{
Node nodeInDb = _context.NodeEntities.Single(n => n.Id == id);
_context.NodeEntities.Remove(nodeInDb);
_context.SaveChanges();
return new HttpStatusCodeResult(System.Net.HttpStatusCode.OK);
}