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

.NET Core添加EF Core迁移时报重复键错误的原因排查

EF Core Add-Migration 报错 'An item with the same key has already been added. Key: System.Object Item [System.String]' 的排查方向
  • 实体继承配置冲突
    基类<Tabel25Entity>与继承它的<TimeUnit>、<ExtraInfo>、<Usage>实体中,可能存在同名的string类型属性被EF Core重复注册。比如基类定义了某个string属性,子类又重新定义了同名属性但未正确排除映射(未加[NotMapped]特性,或未在OnModelCreating中用entity.Ignore(p => p.PropertyName)处理),导致模型构建时出现重复键。
    排查:逐一检查子类与基类的属性,确认同名string属性的必要性,冗余属性直接添加排除配置。

  • 关联关系重复配置
    <ExtraInfo>与<ExtraInfoCategory>之间的关联可能被重复定义——同时使用数据注解(如[ForeignKey]、[InverseProperty])和Fluent API配置同一关联,导致EF Core处理时生成重复键条目。
    排查:清理重复的关联配置,同一关联仅保留一种配置方式(数据注解或Fluent API)。

  • EF Core模型缓存残留
    升级/降级EF Core包后,项目的模型缓存未彻底清理,旧缓存中的重复键残留导致迁移命令报错。
    排查:删除项目的bin和obj目录,重启开发环境,重新执行Add-Migration命令。

  • 属性名称大小写冲突
    部分数据库(如SQL Server)不区分列名大小写,若基类与子类存在大小写不同的同名string属性(如item和Item),会被EF Core识别为同一键,引发冲突。
    排查:统一实体属性命名规范,或通过Fluent API显式配置不同的列名以区分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 10:52:12