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

EF Core继承抽象类实体保存子集合触发DbUpdateConcurrencyException

解决Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException:WHERE Id=0导致更新无匹配行问题

问题现象

  • 触发Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException异常,错误信息:数据库操作预期影响1行但实际影响0行
  • 定义两类一对多实体关系:
    • 普通实体Pie与PieSlice:保存Pie时EF Core能生成正确SQL,PieSlice可正常保存
    • 抽象基类Fruit及其子类Apple,关联FruitSlice:保存Apple时,生成的FruitSlice更新SQL中WHERE条件为Id=0,而主键Id不可能为0,导致无匹配行触发异常

排查过程

  1. 编写极简测试案例验证EF Core实体配置,测试案例可正常运行,排除EF Core本身的映射配置问题
  2. 逐步排查第三方依赖,最终定位到Detached.Mapper NuGet包的配置异常

解决方法

恢复Detached.Mapper原有配置属性后,异常消失,FruitSlice的更新SQL生成正常,可正确匹配主键执行更新

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 15:28:10