У меня есть 2 таблицы с многими многими соотношение (пользователей < -> Права доступа):Entity Framework DataContext навязывает удалить каскад, даже если он отключен
modelBuilder.Entity<User>().HasMany(x => x.Permission).WithMany()
Я отключенными «удалить каскад» из многих многих отношения чтобы получить исключение, если на него ссылается пользователь.
modelBuilder.Conventions.Remove<ManyToManyCascadeDeleteConvention>();
modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
Схема базы данных генерируется правильно. При удалении разрешения (пункт), как следующее:
_dbContext.Entry(item).State = EntityState.Deleted;
_dbContext.SaveChanges();
отношение получает удалено и не исключение проверки обжигают. Однако, когда я удаляю разрешение с чистым SQL из SQL Server Management Studio:
DELETE FROM [Permissions]
WHERE Id = 3
исключение обжигали.
Примечание: Я загружаю все объекты нетерпеливо.
У кого-нибудь есть идея, почему Entity Framework не вызывает никаких исключений и разрешает эту операцию?