Oracle
 sql >> Datenbank >  >> RDS >> Oracle

.net Entity Framework mit Oracle 11g

Anscheinend ist der verwaltete Treiber nicht in der Lage, TNS-Namen aufzulösen. Stellen Sie sicher, dass Ihre Konfiguration korrekt ist (siehe Dokumentation ).

Zum Beispiel:

<oracle.manageddataaccess.client>
  ...
  <settings>
    ...
    <setting name="TNS_ADMIN" value="C:\path\where\TNSNAMESFILE\is"/>
    ...
  </settings>
  ...
</oracle.manageddataaccess.client>

Außerdem müssen Sie möglicherweise die Provider-Factory konfigurieren, wenn sie nicht bereits in machine.config definiert ist :

<system.data>
  <DbProviderFactories>

    <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.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
  </DbProviderFactories>
</system.data>

Nebenbei habe ich festgestellt, dass Sie Oracle.ManagedDataAccessDTC als verwalteten Treiber erwähnen. Bitte beachten Sie, dass Oracle.ManagedDataAccessDTC eigentlich die Komponente ist, die Unterstützung für verteilte Transaktionen bereitstellt, während die Haupttreiber-Assembly "Oracle.ManagedDataAccess" heißt.