0

我有一个名为“LDA”的数据访问层,其中包含以下代码:

db = DatabaseFactory.CreateDatabase("myConn");

和一个 app.config 具有以下内容:

<?xml version="1.0" encoding="utf-8" ?>
<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" />
    <section name="oracleConnectionSettings" type="Microsoft.Practices.EnterpriseLibrary.Data.Oracle.Configuration.OracleConnectionSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
  </configSections>
  <dataConfiguration defaultDatabase="myConn">
    <providerMappings>
      <add databaseType="Microsoft.Practices.EnterpriseLibrary.Data.Oracle.OracleDatabase, Microsoft.Practices.EnterpriseLibrary.Data"
        name="Oracle.DataAccess.Client" />
      <add databaseType="Microsoft.Practices.EnterpriseLibrary.Data.Oracle.OracleDatabase, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        name="System.Data.OracleClient" />
    </providerMappings>
  </dataConfiguration>
  <oracleConnectionSettings>
    <add name="myConn"></add>
  </oracleConnectionSettings>
  <connectionStrings>
    <add name="myConn" connectionString="user id=xxxx;password=xxxx;Data Source=XXXX; Connection Lifetime=60;Pooling=true;Min Pool size=5;"
      providerName="System.Data.OracleClient" />
  </connectionStrings>
</configuration>

我将它从表示层的 web.config 中取出,因为只有 LDA 需要访问数据库,而不是加密连接字符串,我们只想将它放在编译的 dll 中,因为我们需要零动态能力来更改连接字符串.

在表示层项目的 web.config 中使用上述内容,一切正常,但是当我尝试将上述内容放入数据访问项目“LDA”的 app.config 中时,出现以下错误:

尝试获取数据库类型的实例时发生激活错误,键“LTTDBConn”

在 Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance(Type serviceType, String key) in c:\Home\Chris\Projects\CommonServiceLocator\main\Microsoft.Practices.ServiceLocation\ServiceLocatorImplBase.cs:Microsoft.Practices.ServiceLocation 的第 53 行。 ServiceLocatorImplBase.GetInstance[TService](字符串键)在 c:\Home\Chris\Projects\CommonServiceLocator\main\Microsoft.Practices.ServiceLocation\ServiceLocatorImplBase.cs:Microsoft.Practices.EnterpriseLibrary.Data.DatabaseFactory.InnerCreateDatabase 的第 103 行(字符串名称)在 e:\Builds\EntLib\Latest\Source\Blocks\Data\Src\Data\DatabaseFactory.cs:第 82 行 Microsoft.Practices.EnterpriseLibrary.Data.DatabaseFactory.CreateDatabase(String name) 在 e:\Builds\ EntLib\Latest\Source\Blocks\Data\Src\Data\DatabaseFactory.cs:Lisa.DataAccess.OracleHelper.DALHelper 的第 68 行。\DALHelper.cs 中的 ExecuteReader(String spName):第 79 行

关于如何实现这一点的任何想法?即,在网站项目中有一个 webconfig,在数据访问项目中有一个 appconfig(包含 db conn 信息)?

谢谢!

4

0 回答 0