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

EF Core切换DbContextFactory后添加实体触发唯一键冲突错误

EF Core 切换到DbContextFactory后插入实体触发重复主键冲突的解决办法

问题场景

将EF Core的DbContext注入方式从Scoped改为DbContextFactory后,插入ModificareInregistrare实体时出现数据库主键冲突错误。

错误信息

Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details.  ---> Npgsql.PostgresException (0x80004005): 23505: duplicate key value violates unique constraint "PK_Departamente"

关键现象

  • ModificareInregistrare实体的DepartamentId是数据库中已存在的外键值,且实体的Departament属性为null
  • EF Core仍尝试插入一条新的Departament记录,触发主键重复约束
  • 使用Scoped DbContext时无此问题,仅切换到DbContextFactory后出现

排查与解决

经排查,问题根源在于Modificare类关联的Registru对象包含Departament集合,AutoMapper映射时意外引入了Registru的引用,导致EF Core的变更追踪将关联的Departament识别为新增实体。

修改AutoMapper配置,忽略对Registru引用的映射后,问题彻底解决。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 01:40:26