1
我有2個表有一個多對多的關係(用戶< - >權限):實體框架的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 Server Management Studio中純SQL:
DELETE FROM [Permissions]
WHERE Id = 3
異常被解僱。
注:我加載所有渴望的實體。
有沒有人知道爲什麼實體框架不會引發異常並允許此操作?