Работает ли DevForce 7.2.2 с драйвером EF6 + Oracle ODAC Release 3?
Наш проект основан на DevForce 7.2.2 + EF5 + Oracle ODAC Release 2. Oracle выпускает новую версию ODAC 3 со дня Рождества, которая поддерживает EF6, поэтому мы планируем перейти на EF6. Я установил новый драйвер ODAC и EF6, добавил IdeaBlade.EntityModel.Edm.EF6 и успешно скомпилировал проект. Но когда я попытался удалить файл edmx.tt и снова сохранить edmx, ошибка говорит:
Выполнение преобразования: System.Exception: невозможно загрузить MetadataWorkspace из файла:
C:\HRM\branch \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 для получения дополнительной информации. at IdeaBlade.VisualStudio.OM.CodeGenerator.Metadata.EdmxWrapper.ThrowException (String edmxFileName, IEnumerable 1 errors)
at IdeaBlade.VisualStudio.OM.CodeGenerator.Metadata.EdmxWrapper.LoadFrom(String edmxFileName, IEnumerable
1 и ошибки) в IdeaBlade.VisualStudio.OM.CodeGenerator.BaseDomainModelTemplate.Generate() в Microsoft.VisualStudio.TextTemplatingF6DEE480DF7B4F94A3D12E403704A2572EB9DB1E939B6073E8F11C8E668FEEA7B6005FF1359D9D2F5838491689A816AF3A6016F8F44D717349E05C0127639B54.GeneratedTextTransformation.TransformText() в C: \ HRM \ ветви \ работа \ Client \ Ствол \william_EF6\Source\Infor.HRCM.BusinessObjectEF\HRCMModel.edmx.tt: строка 9 c:\HRM\branch \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="data source=DEV12;password=hrm_trunk;persist security info=True;user id=HRM_TRUNK"" 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>
1 ответ
EF6, похоже, загружает / разрешает информацию app.config иначе, чем в EF5, вызывая проблему DevForce во время разработки. Генерация кода DevForce в EF6 в настоящее время не может использовать информацию из файла конфигурации вашего проекта, поэтому информация о entityFramework в вашей конфигурации не найдена.
Вы можете обойти эту проблему сейчас, добавив информацию entityFramework (включая запись configSection) в файл devenv.exe.config, расположенный в той же папке, что и devenv.exe.
Мы надеемся исправить это в следующем выпуске DevForce.