Каскадное удаление (автоматическое удаление зависимой сущности после удаления главной) описывается по-разному в EF 6 и EF Core
В EF 6 описание каскада производится на главной сущности:
modelBuilder.Entity<Company>()
.HasMany(p => p.Phones)
.WithRequired(p=>p.Company)
.WillCascadeOnDelete(false);
В EF Core описание каскада производится на зависимой сущности:
modelBuilder.Entity<Phone>()
.HasOne(p => p.Company)
.WithMany(t => t.Phones)
.OnDelete(DeleteBehavior.Cascade);
Непонятно, чем руководствовались разработчики, когда принимали решение сделать в EF core иначе, вероятно они видели преимущество новой схемы? Если да, то какое? Я вот сколько ни обдумывал этот вопрос так и не нашёл какой-то конкретной киллерфичи, да и вообще оба варианта кажутся мне примерно одинаковыми.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей