采用DB First方式搭建Oracle数据库时遇程序集找不到错误求助
解决Scaffold-DbContext找不到Oracle.ManagedDataAccess.Core的问题
可能的原因及解决步骤:
安装正确的NuGet包
脚手架依赖EF Core的Oracle提供程序,而非仅底层驱动包。需确保项目已安装以下两个包:- 使用Package Manager Console执行:
Install-Package Oracle.EntityFrameworkCore Install-Package Oracle.ManagedDataAccess.Core - 或使用.NET CLI执行:
dotnet add package Oracle.EntityFrameworkCore dotnet add package Oracle.ManagedDataAccess.Core
- 使用Package Manager Console执行:
修正脚手架命令的Provider参数
原命令中-Provider参数错误,EF Core脚手架需要指定的是EF Core提供程序名称Oracle.EntityFrameworkCore,而非Oracle.ManagedDataAccess.Core。修正后的命令:Scaffold-DbContext -Provider Oracle.EntityFrameworkCore -Connection "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=18.88.**)(PORT=1**1))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=C**C)));User Id=C**C;Password=C***8;" -OutputDir Models检查项目框架兼容性
确认项目的TargetFramework符合Oracle.ManagedDataAccess.Core的要求(通常支持.NET 6及以上版本),版本不匹配会导致程序集无法加载。清理重建项目
删除项目的bin和obj文件夹,清理缓存后重新生成项目,再执行脚手架命令,避免安装缓存问题导致的程序集加载失败。确保包版本一致
保证Oracle.EntityFrameworkCore和Oracle.ManagedDataAccess.Core的版本完全匹配,版本不一致可能引发兼容性问题。
内容的提问来源于stack exchange,提问作者user19163726
相关产品推荐
相关产品推荐

