You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EF Core中包含多个外键的表的默认删除选项是什么

EF Core 一对多关系默认删除行为说明

核心规则

你使用的builder.HasMany(c => c.Experts);属于EF Core中一对多关系的Fluent API配置,未显式指定删除规则时,默认行为由外键字段的可空性决定:

  • 外键为不可空类型:默认采用Cascade(级联删除)策略。主表记录删除时,所有关联的从表记录会被同步删除。
  • 外键为可空类型:默认采用ClientSetNull策略。主表记录删除时,EF Core会自动将关联从表记录的对应外键字段赋值为null,从表记录本身不会被删除。

手动指定删除规则的示例

如果你需要修改默认行为,可以链式调用OnDelete方法传入指定的删除策略枚举:

builder.HasMany(c => c.Experts)
    .WithOne() // 此处根据你的实体导航配置调整,如有反向导航可填写对应的导航属性
    .OnDelete(DeleteBehavior.Restrict);

常见删除策略枚举说明

  • Cascade:级联删除,主表记录删除时同步删除关联从表记录
  • Restrict:存在关联从表记录时禁止删除主表记录,触发外键约束报错
  • SetNull:主表记录删除时将关联从表记录的外键字段设为null
  • NoAction:行为和Restrict基本一致,具体差异由底层数据库的外键约束逻辑决定

内容的提问来源于stack exchange,提问作者MohammadMehrabiHadi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 22:54:07