Oracle Instant Client和Entity Framework在配置方面存在问题

Mus*_*g31 8 c# oracle asp.net-mvc entity-framework odac

我正在尝试学习并弄清楚是否可以将MVC,EF,ODAC 11.2.0.3应用程序部署到安装了先前版本的ODP.NET的服务器上.我想我可以使用Oracle Instant Client,而不是更新服务器ODP.NET(我不能).

这可行吗?

1)我将这些dll添加到我的项目中以支持Instant Client

-Oracle.DataAccess.dll

-oci.dll

-ociw32.dll

-orannzsbb11.dll

-oraociei11.dll

-OraOps11w.dll

2)接下来,我更新了dbProviderFactories的web.config

   <system.data>
    <DbProviderFactories>
    <add name="Oracle Data Provider for .NET"
    invariant="Oracle.DataAccess.Client"
    description="Oracle Data Provider for .NET"
    type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess,    Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
    </DbProviderFactories>
    </system.data>
Run Code Online (Sandbox Code Playgroud)

3)这个(afaik)是如何在bin rathre中使用Oracle dll而不是GAC

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89b483f429c47342" />
    <publisherPolicy apply="no" />
  </dependentAssembly>
</assemblyBinding>
</runtime>
Run Code Online (Sandbox Code Playgroud)

4)最后我的connectionString

    <connectionStrings>
    <add name="Entities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=Oracle.DataAccess.Client;
provider connection string=&quot;DATA SOURCE=XXX;PASSWORD=XXX;PERSIST SECURITY INFO=True;USER ID=XXX&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
Run Code Online (Sandbox Code Playgroud)

这是我收到的错误无法找到请求的.Net Framework数据提供程序.它可能没有安装.

我非常感谢这里的任何帮助.我很新,有很多东西需要学习.提前致谢.干杯

Jer*_*emy 3

在 Web 配置的元素中添加一个<remove \xe2\x80\xa6 />部分以删除任何现有的 Oracle 提供程序。<DbProviderFactories>(之前<add>

\n\n

<remove invariant ="Oracle.DataAccess.Client" />

\n