[英]Soft delete on Parent Entity but Hard delete on Child/Relationship EF Core
[英]Delete parent if no children in EF Core 7
使用 EF Core 7 和 .NET 7(但在以前的版本中也是如此),可以通过在OnModelCreating
- 方法中配置父实体的删除行为来删除 SQL 服务器数据库中一对多关系的所有子项class 派生自DbContext
类,如下所示:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder
.Entity<Department>()
.HasMany(d => d.Employees)
.WithOne(e => e.Department)
.OnDelete(DeleteBehavior.Cascade)
}
}
但是,如果所有子实体都被删除,我想删除父实体怎么办?
我已经尝试从上面的模式映射一个反向删除模式(见下文),但没有成功。
modelBuilder.Entity<Employee>()
.HasOne(e => e.Department)
.WithMany(d => d.Employees)
.OnDelete(DeleteBehavior.Cascade);
ORM 引擎的灵感来自关系数据库管理系统。 在删除最后一个子项时删除父项不是数据库引擎中关系更改的标准操作。 所以 EFCore 不支持它。 在数据库级别,您可以使用触发器来实现您想要的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.