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

执行EF Core Add-Migration迁移PostgreSQL遇类型加载错误求助

解决EF Core PostgreSQL迁移时的TypeLoadException错误

这个错误的核心原因是NuGet包版本不兼容:Npgsql.EntityFrameworkCore.PostgreSQL与Microsoft.EntityFrameworkCore(及其Relational、Design子包)的版本不匹配。IRelationalValueBufferFactoryFactory类型在EF Core 7.0中已被移除,若你安装的Npgsql EF Core包是针对EF Core 6.x或更早版本的,就会尝试加载这个已不存在的类型,从而抛出异常。

解决步骤

  • 统一所有EF Core相关包的版本:确保以下包的主版本完全一致(比如都用7.x或都用6.x):

    • Microsoft.EntityFrameworkCore
    • Microsoft.EntityFrameworkCore.Relational
    • Microsoft.EntityFrameworkCore.Design
    • Npgsql.EntityFrameworkCore.PostgreSQL
  • 实操修复流程:

    1. 卸载所有上述相关NuGet包(可通过NuGet包管理器或CLI命令)
    2. 重新安装对应版本的包,严格保持主版本统一
    3. 清理项目:执行命令 dotnet clean
    4. 重新生成项目:执行命令 dotnet build
    5. 再次尝试运行迁移命令:Add-Migration init_postgreeDB -Context 'ApplicationDbContext'

示例CLI命令(以EF Core 7.0为例)

# 卸载旧包
dotnet remove package Microsoft.EntityFrameworkCore
dotnet remove package Microsoft.EntityFrameworkCore.Relational
dotnet remove package Microsoft.EntityFrameworkCore.Design
dotnet remove package Npgsql.EntityFrameworkCore.PostgreSQL

# 安装统一版本的新包
dotnet add package Microsoft.EntityFrameworkCore --version 7.0.14
dotnet add package Microsoft.EntityFrameworkCore.Relational --version 7.0.14
dotnet add package Microsoft.EntityFrameworkCore.Design --version 7.0.14
dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL --version 7.0.11

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 23:55:27