По умолчанию EF создаст внешние ключи, будет cascade delete
.В вашей модели, если вы удаляете Standard
, существует несколько путей для удаления QuestionDescriptor
.
Стандарт -> QuestionDescriptor
и
Стандарт -> Тема -> ВопросДескриптор
Именно поэтому SQL-сервер не позволяет вам это делать.См. этот ответ для получения более подробной информации
Что вы можете сделать, это явно указать EF создавать внешние ключи без cascade delete
. Но это может создать проблемы с целостностью данных.Поэтому убедитесь, что вы понимаете последствия.
Что вы можете сделать, это настроить отношения, используя свободный API с WillCascadeOnDelete(false)
.
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//other mappings
modelBuilder.Entity<Subject>()
.HasRequired(subject => subject.Standard).WithMany()
.HasForeignKey(subject => subject.StandardId)
.WillCascadeOnDelete(false);
}