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

Devart搭配Oracle 10g与EF Core 5生成模型时为何提示找不到提供程序

报错核心诱因及排查方向
  • 安装的NuGet包分支不匹配:Devart.Data.Oracle.EFCore 9.14.1234 是跨EF Core版本的大版本,不同子版本包会绑定特定的EF Core大版本。如果你选了适配EF Core 6/7/8的安装分支,哪怕项目用的是.NET 5+EFCore5的组合,EF工具链也会因为程序集适配的目标框架不兼容,扫不到对应的提供程序。
  • 包引用未实际写入项目:如果本地NuGet缓存损坏,有时候包管理器会显示安装成功,但实际Project1.csproj里根本没生成对应包的引用节点,EF工具顺着项目依赖扫描的时候自然找不到目标程序集。
  • 全局EF工具版本不匹配:如果你本机全局装的dotnet ef是对应EFCore 7/8的高版本,扫描EFCore5生态下的第三方提供程序时,会出现元数据识别兼容问题,直接抛出找不到程序集的报错。
  • 命令里的提供程序名和实际程序集名有偏差:部分9.x分支的Devart Oracle EFCore提供程序,实际暴露给工具链的程序集名称,和通用写法Devart.Data.Oracle.EFCore有细微区别(比如多了Entity字段),和命令里指定的名称对不上,就会触发找不到程序集的报错。

快速排查操作步骤

  • 在项目根目录执行dotnet list package,确认输出列表中同时存在:版本为9.14.1234的Devart.Data.Oracle.EFCore包、版本为5.x的Microsoft.EntityFrameworkCore核心包,没有跨版本混装其他高版本EFCore包。
  • 将本机全局的dotnet ef工具降级到EFCore5适配版本,执行命令dotnet tool update --global dotnet-ef --version 5.0.17,避免高版本工具的兼容问题。
  • 直接打开Project1.csproj文件,检查Devart对应的包引用是否真实存在;如果引用缺失,就清除本地NuGet缓存后重新安装对应包。
  • 打开项目编译输出的bin目录,核对实际生成的Devart相关dll文件名,确认scaffold命令里填写的提供程序名,和dll去掉后缀后的字符串完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 23:27:01