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

.NET 8.0升级后EF Core迁移失败:OwnedNavigationBuilder无HasDiscriminator方法

解决.NET 8.0 EF Core迁移报错:OwnedNavigationBuilder无HasDiscriminator定义

问题原因

.NET 8的EF Core对Owned实体的配置逻辑做了调整,Owned类型不再支持设置鉴别器(Discriminator)——因为Owned实体是完全从属主实体的依赖类型,设计上不需要鉴别字段。

解决步骤

  • 打开自动生成的ContextModelSnapshot.cs文件,找到报错的HasDiscriminator()调用代码,直接删除该行。
  • 检查自定义的Fluent API配置代码,若有给Owned实体配置HasDiscriminator的逻辑,同样移除这部分代码。
  • 重新执行迁移命令:
    # Package Manager Console中执行
    Add-Migration <你的迁移名称>
    
    # 或使用.NET CLI
    dotnet ef migrations add <你的迁移名称>
    
  • 若之前的迁移文件中存在针对Owned实体的鉴别器相关操作,需手动清理对应代码,避免后续更新数据库时出现异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 09:34:51