Mic*_*mlk 4 .net enterprise-library odp.net
我正在将项目从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>
Run Code Online (Sandbox Code Playgroud)
与4.1一起工作的所有调用都DatabaseFactory.CreateDatabase()失败了:
System.InvalidOperationException: The type Database cannot be constructed. You must configure the container to supply this value.
Run Code Online (Sandbox Code Playgroud)
如果我Oracle.DataAccess.Client用微软取而代之,System.Data.Oracleclient那一切都会再次起作用,但并不是ODP.net的可爱.有谁知道如何使用EntLib 5?
干杯,Mlk
它会导致Oracle安装程序有时会忘记安装在其中的数据库提供程序工厂machine.config.要解决此问题,需要将以下内容放入app.config或中machine.condig.
<system.data>
<DbProviderFactories>
<add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client"
description="Oracle Data Provider for .NET" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=2.102.2.20, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</DbProviderFactories>
</system.data>
Run Code Online (Sandbox Code Playgroud)
我认为在EntLib4中工作的是EntLib4使用以前版本的Oracle客户端(我认为是10.2.0.1.Oracle编号很奇怪).
| 归档时间: |
|
| 查看次数: |
4783 次 |
| 最近记录: |