Работает ли DevForce 7.2.2 с драйвером EF6 + Oracle ODAC Release 3?

Наш проект основан на DevForce 7.2.2 + EF5 + Oracle ODAC Release 2. Со дня Рождества Oracle предоставляет новую версию ODAC Release 3, которая поддерживает EF6, поэтому мы планируем перейти на EF6. Я установил новый драйвер ODAC и EF6, добавил IdeaBlade.EntityModel.Edm.EF6 и успешно скомпилировал проект. Но когда я попытался удалить файл edmx.tt и снова сохранить edmx, ошибка говорит:

Выполняется преобразование: System.Exception: невозможно загрузить MetadataWorkspace из файла: C:\HRM\branches\work\Client\trunk\william_EF6\Source\Infor.HRCM.BusinessObjectEF\HRCMModel.edmx Это может быть связано с к ошибкам валидации, возникшим во время загрузки; Пожалуйста, проверьте наличие ошибок проверки EDMX. Поставщик Entity Framework не найден для поставщика ADO.NET с инвариантным именем «Oracle.DataAccess.Client». Убедитесь, что поставщик зарегистрирован в разделе «entityFramework» файла конфигурации приложения. См. http://go.microsoft.com/fwlink/?LinkId=260882. Дополнительная информация. на IdeaBlade.VisualStudio.OM.CodeGenerator.Metadata.EdmxWrapper.ThrowException (String edmxFileName, IEnumerable1 errors) at IdeaBlade.VisualStudio.OM.CodeGenerator.Metadata.EdmxWrapper.LoadFrom(String edmxFileName, IEnumerable1 & ошибок) в IdeaBlade.VisualStudio.OM.CodeGenerator.BaseDomainModelTemplate.Generate () в Microsoft.VisualStudio.TextTemplatingF6DEE480DF7B4F94A3D12E403704A2572EB9DB1E939B6073E8F11C8E668FEEA7B6005FF1359D9D2F5838491689A816AF3A6016F8F44D717349E05C0127639B54.GeneratedTextTransformation.TransformText () в C: \HRM\branches\work\Client\trunk\william_EF6\Source\Infor.HRCM.BusinessObjectEF\HRCMModel.edmx.tt:line 9 c:\HRM\branches\work\Client\trunk\william_EF6\Source\Infor.HRCM. BusinessObjectEF\HRCMModel.edmx.tt 9 1 Infor.HRCM.BusinessObjectEF

Я создал новую демку без DevForce (только драйвер EF6 + ODAC), она работает. Ниже приведена конфигурация моего приложения:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
  </configSections>
  <connectionStrings>
    <add name="HRCMContext" connectionString="metadata=res://*/HRCMModel.csdl|res://*/HRCMModel.ssdl|res://*/HRCMModel.msl;provider=Oracle.DataAccess.Client;provider connection string=&quot;data source=DEV12;password=hrm_trunk;persist security info=True;user id=HRM_TRUNK&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
  <oracle.unmanageddataaccess.client>
    <version number="*">
      <edmMappings>
        <edmNumberMapping>
          <add NETType="decimal" MinPrecision="1" MaxPrecision="19" DBType="Number" />
        </edmNumberMapping>
      </edmMappings>
    </version>
  </oracle.unmanageddataaccess.client>
  <entityFramework>
    <providers>
      <provider invariantName="Oracle.DataAccess.Client" type="Oracle.DataAccess.EntityFramework.EFOracleProviderServices,
                Oracle.DataAccess.EntityFramework,Version=6.121.2.0, 
                Culture=neutral, PublicKeyToken=89b483f429c47342" />
    </providers>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
  </entityFramework>
</configuration>

person William Gan    schedule 15.01.2015    source источник
comment
У нас были и другие сообщения о проблемах с Oracle и EF6, и мы их изучаем. Вы можете напрямую связаться со службой поддержки IdeaBlade для получения дополнительной информации.   -  person Kim Johnson    schedule 19.01.2015


Ответы (1)


Похоже, что EF6 загружает/разрешает информацию app.config не так, как в EF5, что вызывает проблему DevForce во время разработки. Генерация кода DevForce в EF6 в настоящее время не может использовать информацию в файле конфигурации вашего проекта, поэтому информация entityFramework в вашей конфигурации не найдена.

На данный момент вы можете обойти эту проблему, добавив информацию entityFramework (включая запись configSection) в файл devenv.exe.config, расположенный в той же папке, что и devenv.exe.

Мы надеемся, что это будет исправлено в следующем выпуске DevForce.

person Kim Johnson    schedule 23.01.2015
comment
Эта проблема была исправлена ​​в выпуске 7.2.6, доступном в NuGet. - person Kim Johnson; 21.03.2015