Я обновляю проект с EntLib 4.1 до EntLib 5. Я просмотрел Руководство по миграции, изменил все ссылки и обновил все файлы конфигурации, чтобы указать на EntLib 5. Все работало нормально, принимая доступ к базе данных Oracle. С файлом конфигурации:
<configuration>
<configSections>
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
</configSections>
<dataConfiguration defaultDatabase="prod">
<providerMappings>
<add databaseType="Microsoft.Practices.EnterpriseLibrary.Data.Oracle.OracleDatabase, Microsoft.Practices.EnterpriseLibrary.Data"
name="Oracle.DataAccess.Client" />
</providerMappings>
</dataConfiguration>
<connectionStrings>
<add name="prod" connectionString="Data Source=dev;User Id=dev;Password=dev;"
providerName="Oracle.DataAccess.Client" />
</connectionStrings>
</configuration>
, который работал с 4.1, все вызовы на DatabaseFactory.CreateDatabase()
завершаются неудачно с:
System.InvalidOperationException: The type Database cannot be constructed. You must configure the container to supply this value.
Если я заменю Oracle.DataAccess.Client
на Microsoft System.Data.Oracleclient
, все снова будет работать, но не наполнено прелестью ODP.net. Кто-нибудь знает, как заставить это работать с EntLib 5?
Cheers,
MLK