У меня есть следующие сущности в доменном проекте:
public class Parent {
...
private Guid Id { get; private set; }
private virtual Child Child { get; private set; }
public void RemoveChild() {
Child = null;
}
...
}
public class Child {
...
private Guid Id { get; private set; }
private virtual Grandchild Grandchild1 { get; private set; }
private virtual Grandchild Grandchild2 { get; private set; }
...
}
public class Grandchild {
...
private Guid Id { get; private set; }
...
}
Можно ли настроить Context (подход с первым кодом) таким образом, чтобы, если я назначу null для Child в Parent, тогда сущности Child и Grandchildren будут быть удаленным из базы данных? Я пытался установить DeleteBehaviour.Cascade на Grandchild1Id и Grandchild2Id of Child, но SQL Сервер не позволяет каскадно удалять два одинаковых типа в сущности.
Я хочу этот сценарий:
(Parent entity) Child = null =>
(Parent table) ChildId = NULL =>
(Child table) Grandchild1Id = NULL, Grandchild2Id = NULL =>
(Grandchild table) Deletes rows with Grandchild1Id AND Grandchild2Id