2017-01-27 95 views
0

我目前正在使用实体框架与Oracle数据库交互的MVC应用程序。EF提供的存储提供程序错误

创建edmx,添加和更新表,所有这些操作都完成而不会产生任何错误,因为我已经安装了所有需要使用它的Oracle供应商。

但是,这里是这样的:当我试图运行我的应用程序(这是完成没有错误),当执行下面的行时,Visual Studio产生一个错误。

return PartialView("_GridViewRecruitmentPartial", model.Where(e => e.NON_ACTIVE != 1).OrderByDescending(e => e.EMPL_ID).ToList()); 

错误消息:

指定的存储提供不能在配置中找到,或者 无效。

和内部消息:

无法找到所需的.NET Framework数据提供。它可能不会 被安装

我知道EF和Oracle有些问题,但看不到什么。另外,我还有很多其他项目使用这两个,一切都很顺利。

任何猜测?

+0

你是说,你部署应用程序到不同的位置,你之后出现错误开发它?如果是这样,那么需要配置文件更新以让EF知道ODP.NET。这些由ODP.NET实体框架Nuget包或基于ODP.NET安装程序的安装自动处理(在第二种情况下,您需要在目标机器上运行安装程序或自行更新配置)。请确认所发生的事情以及您使用的确切odp.net软件包,Nuget或其他软件。 –

回答

1

我不确定你用什么来访问数据。有多个Oracle提供商......无论如何,您应该使用Nuget的官方Oracle Managed driver

当您从的NuGet安装它应该使一切工作本身添加到您的web.config ..

<entityFramework> 
    <providers> 
     <provider invariantName="Oracle.ManagedDataAccess.Client" 
    type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework, Version=6.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/> 
    </providers> 
</entityFramework>