出于无法控制的原因,我有一个使用Entity Framework 6和Oracle托管数据访问驱动程序的具有API的MVC5应用程序,但是我需要将其切换为使用非托管Oracle驱动程序。我已经安装了Oracle Client v12.3。我尝试删除托管的Oracle .NET NuGet程序包,引用了项目中的非托管驱动程序,并将所有的Oracle.ManagedDataAccess引用都更改为Oracle.DataAccess。 Oracle Client安装似乎可以,因为我有一个较旧的应用程序,该应用程序可以运行并使用非托管的Oracle驱动程序。两个应用程序都连接到相同的数据库。
MVC应用程序编译并运行,但是当它尝试连接到数据库时,在构造DbConnection时出现以下错误:
实体框架提供程序类型 'Oracle.DataAccess.EntityFramework.EFOracleProviderServices, Oracle.DataAccess.EntityFramework,版本4.112.3.0,文化=中性, 在应用程序配置中注册的PublicKeyToken = 89b483f429c47342' 名称为'Oracle.DataAccess'的ADO.NET提供程序的文件 无法加载。确保程序集限定名称为 使用该程序集,并且该程序集可用于正在运行的应用程序。
Oracle非托管驱动程序是否支持EF6,如果可以,我缺少什么配置来允许它加载驱动程序?谢谢!
答案 0 :(得分:0)
EF6确实支持Oracle.DataAccess。但是,您无法通过Nuget完成此操作。请查看下面的链接,以获取实际解决问题的人员的一些指导。
Nuget package for Oracle Unmanaged Provider with Entity Framework