ODAC 12c and Entity Framework 6
Can anyone tell me if the Oracle Data Access Components 12c is compatible with Entity Framework 6? The Oracle website is a nightmare for documentation and cannot find any references on how to resolve this.
I have an existing project which I am trying to upgrade to ODAC 12c and EF6 but I'm getting the following error which I am struggling to resolve:
I created a fresh project to rule out any issues with my existing project and I get the same problem. I believe it to be an issue with the app.config file edited automatically by the Entity Framework Power Tools Beta 4 (Reverse Engineer Code First):
Can anyone point me in the right direction?
**Oracle Data Access Components 12c Release 3 Beta 2 ** ODAC 12c R3 is the first ODP.NET release to certify with Entity Framework (EF) 6 and EF Code First. http://www.oracle.com/technetwork/topics/dotnet/whatsnew/index.html
Devart recently announced Oracle 12c support. You may want to consider using their provider instead.
The error you're receiving states that you didn't add a Oracle.ManagedDataAccess.Client to the providers tag.
Adding this will solve your problem:
<provider invariantName="Oracle.ManagedDataAccessClient" type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=126.96.36.199, Culture=neutral, PublicKeyToken=89b483f429c47342" />
but unfortunately will not work in the end due to lack of support for EF6 in ODAC 12c R2, as mentioned in the comments.
In additional to add Oracle.ManagedDataAccess.Client provider to configuation/entityframework/providers tag.
<entityFramework> <providers> <provider invariantName="Oracle.ManagedDataAccess.Client" type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices,Oracle.ManagedDataAccess.EntityFramework, Version=188.8.131.52, Culture=neutral, PublicKeyToken=89b483f429c47342" /></providers></entityFramework>
You may need to add the following DbProviderFactories tag to configuration/ because Oracle installer forgets to add it to the machine.config
<system.data> <DbProviderFactories> <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=184.108.40.206, Culture=neutral, PublicKeyToken=89b483f429c47342" /> </DbProviderFactories>