Der ADO.NET-Anbieter 'Oracle.ManagedDataAccess.Client' ist entweder nicht in der Konfigurationsdatei des Computers oder der Anwendung registriert oder konnte nicht geladen werden

Ich benutze.NET4.5.1, MVC5, EF6, mitOracle.ManagedDataAccess 4.121.1.0 undOracle.ManagedDataAccess.EntityFramework 6.121.2.0

Ich konnte Model aus einer vorhandenen Datenbank generieren (ein Teil davon fügt Tabelle für Tabelle hinzu), die Anwendung lässt sich problemlos erstellen.

Wie auch immer, wenn ich versuche, eine Testabfrage auszuführen, um zu sehen, ob die Daten abgerufen werden können

 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);
        }
    }

es schlägt fehl (amvar result = ...) mitUnable to find the requested .Net Framework Data Provider. It may not be installed.

Wenn Sie versuchen, nach @ zu such DbProviderFactories in der Tat gibt es nichts in der Sammlung var factoryClasses =).

JedochIch habe 12c 4 (ODTwithODAC121024) installiert und 11g (ODTwithODAC1120320_32bit) und haben die Maschine neu gestartet.

Database läuft auf 11g und ich kann mit @ darauf zugreifPL/SQL developer

Web.config sieht folgendermaßen aus:

<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
 <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
 <section name="Oracle.ManagedDataAccess.Client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</configSections>
.....
<connectionStrings>
.....
<add name="OracleDbContext" providerName="Oracle.ManagedDataAccess.Client" connectionString="User Id=oracle_user;Password=oracle_user_password;Data Source=oracle" />
 <add name="Entities" connectionString="metadata=res://*/OracleDb.csdl|res://*/OracleDb.ssdl|res://*/OracleDb.msl;provider=Oracle.ManagedDataAccess.Client;provider connection string='data source=******" providerName="System.Data.EntityClient" />           </connectionStrings>
......
<system.data>
<DbProviderFactories>
  <!-- Remove in case this is already defined in machine.config -->
  <add name="Oracle Data Provider for .NET" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET" type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
  <remove invariant="Oracle.ManagedDataAccess.Client" />
  <add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver" type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</DbProviderFactories>

Meine Annahme, dass es fehlschlägt, weil Oracle nicht in @ registriert isDbProviderFactories oder irgendwo

Wie registriere ich Oracle in DbProviderFactories? Oder wenn dies nicht der Fall ist, was ist mit meinem Setup falsch?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage