结合使用非托管的Oracle.DataAccess驱动程序和MVC5和Entity Framework 6

时间:2019-01-30 17:29:22

标签: asp.net-mvc oracle

出于无法控制的原因,我有一个使用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,如果可以,我缺少什么配置来允许它加载驱动程序?谢谢!

1 个答案:

答案 0 :(得分:0)

EF6确实支持Oracle.DataAccess。但是,您无法通过Nuget完成此操作。请查看下面的链接,以获取实际解决问题的人员的一些指导。

Nuget package for Oracle Unmanaged Provider with Entity Framework