ODAC 12c和实体框架6

时间:2013-10-21 15:33:31

标签: c# oracle entity-framework entity-framework-6 odac

有谁能告诉我Oracle Data Access Components 12c是否与Entity Framework 6兼容? Oracle网站是文档的噩梦,无法找到有关如何解决此问题的任何参考资料。

我有一个现有的项目,我正在尝试升级到ODAC 12c和EF6,但我收到以下错误,我正在努力解决:

exception

我创建了一个新项目来排除现有项目的任何问题,我也遇到了同样的问题。我认为这是由Entity Framework Power Tools Beta 4(逆向工程师代码优先)自动编辑的app.config文件的问题:

config file

有人能指出我正确的方向吗?

4 个答案:

答案 0 :(得分:3)

Devart最近宣布Oracle 12c support。您可能需要考虑使用他们的提供者。

答案 1 :(得分:2)

** Oracle数据访问组件12c版本3 Beta 2 ** ODAC 12c R3是第一个使用Entity Framework(EF)6和EF Code First认证的ODP.NET版本。 http://www.oracle.com/technetwork/topics/dotnet/whatsnew/index.html

答案 2 :(得分:1)

您收到的错误表明您没有将Oracle.ManagedDataAccess.Client添加到providers标记。

添加此项将解决您的问题:

<provider invariantName="Oracle.ManagedDataAccessClient"
                type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />

但遗憾的是,由于缺乏对ODAC 12c R2中EF6的支持,最终不会起作用,如评论中所述。

答案 3 :(得分:1)

另外将Oracle.ManagedDataAccess.Client提供程序添加到configuation / entityframework / providers标记。

<entityFramework>
<providers>
  <provider invariantName="Oracle.ManagedDataAccess.Client" type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices,Oracle.ManagedDataAccess.EntityFramework, Version=6.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" /></providers></entityFramework>

您可能需要将以下DbProviderFactories标记添加到配置/,因为Oracle安装程序忘记将其添加到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=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</DbProviderFactories>