Я вижу, что ваша One-to-One
Fluent API конфигурация написана неправильно, поскольку вы не указали зависимую сущность.Ваша Fluent API конфигурация должна быть записана следующим образом:
modelBuilder.Entity<Article>().HasOne(a => a.MediaPlan)
.WithOne(mp => mp.Article)
.HasForeignKey<Article>(a => a.MediaPlanId)
.OnDelete(DeleteBehavior.Cascade);
Теперь удаление MediaPlan
также приведет к удалению зависимого Article
следующим образом:
var mediaPlanToBeDeleted = await _db.MediaPlans.FirstOrDefaultAsync(x=>x.Id == id);
_db.MediaPlans.Remove(mediaPlanToBeDeleted);
await _db.SaveChangesAsync();
Теперь, если вам нужно обратное поведение, вы должны полностью изменить конфигурацию Fluent API .
Примечание. Только удаление основного объекта приведет к каскадному удалению зависимого объекта.И наоборот невозможно.