相关疑难解决方法(0)

ADO.NET提供程序"Oracle.ManagedDataAccess.Client"未在计算机或应用程序配置文件中注册,或者无法加载

我正在使用.NET4.5.1,MVC5EF6,Oracle.ManagedDataAccess 4.121.1.0Oracle.ManagedDataAccess.EntityFramework 6.121.2.0

我能够从现有数据库生成模型(部分按表添加表),应用程序构建就好了.

但是当我尝试运行测试查询以查看它是否可以获取数据时

 public ActionResult Cancellations()
    {
        var factoryClasses = System.Data.Common.DbProviderFactories.GetFactoryClasses();
        using (var db = new Entities())
        {
            var cancelationStatuses = new[] {3, 7, 9};
           var result = db.TRANSACTIONDETAIL.Where(o => cancelationStatuses.Contains(o.TRANSACTIONSTATUSID));
           return View(result);
        }
    }
Run Code Online (Sandbox Code Playgroud)

它失败了(上var result = ...)Unable to find the requested .Net Framework Data Provider. It may not be installed.

当试图寻找 DbProviderFactories确实在集合(var factoryClasses =)中没有任何东西.

但是我确实安装了12c 4(ODTwithODAC121024)和11g(ODTwithODAC1120320_32bit),并重新启动了机器.

数据库在11g上运行,我可以使用它访问它 PL/SQL developer …

c# oracle configuration .net-4.5 entity-framework-6

10
推荐指数
2
解决办法
4万
查看次数

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

我正在尝试学习并弄清楚是否可以将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数据提供程序.它可能没有安装.

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

c# oracle asp.net-mvc entity-framework odac

8
推荐指数
1
解决办法
2万
查看次数