ODAC 12c и Entity Framework 6

Может ли кто-нибудь сказать мне, что Oracle Data Access Components 12c совместим с Entity Framework 6? Веб-сайт Oracle является кошмаром для документации и не может найти ссылок на то, как это разрешить.

У меня есть существующий проект, который я пытаюсь обновить до ODAC 12c и EF6, но я получаю следующую ошибку, которую я пытаюсь решить:

exception

Я создал новый проект, чтобы исключить любые проблемы с моим существующим проектом, и я получаю ту же проблему. Я считаю, что это проблема с файлом app.config, автоматически отредактированным с помощью Entity Framework Power Tools Beta 4 (сначала обратный код инженера):

config file

Может ли кто-нибудь указать мне в правильном направлении?

Ответ 2

Недавно Devart объявила поддержку Oracle 12c. Вместо этого вы можете захотеть использовать своего поставщика.

Ответ 3

Ошибка, которую вы получаете, указывает, что вы не добавляли Oracle.ManagedDataAccess.Client в тег провайдеров.

Добавление этого решения поможет решить вашу проблему:

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

но, к сожалению, не будет работать в конце из-за отсутствия поддержки EF6 в ODAC 12c R2, как указано в комментариях.

Ответ 4

Дополнительно, чтобы добавить поставщика Oracle.ManagedDataAccess.Client в тег configure/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>