【发布时间】:2014-01-23 12:25:56
【问题描述】:
我有 2 个具有多对多关系的表(用户 权限):
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
异常被触发。
注意:我会加载所有实体。
有谁知道为什么实体框架不会触发异常并允许此操作?
【问题讨论】:
标签: entity-framework frameworks entity cascade cascading-deletes