在Microsoft.Practices.EnterpriseLibrary中配置连接池

时间:2011-04-05 06:17:51

标签: sql-server enterprise-library connection-pooling

我正在使用Microsoft.Practices.EnterpriseLibrary中的数据访问应用程序块,并且找不到这个老化组件的在线文档。

我遇到连接池问题,我想查看/调整设置。但是,在连接字符串的配置中似乎没有提到这一点,这是我希望它配置的地方。

<connectionString name="Sql Connection String">
    <parameters>
        <parameter name="database" value="DB name" isSensitive="false" />
        <parameter name="password" value="xxx" isSensitive="true" />
        <parameter name="server" value="xxx.xxx.xxx.xxx" isSensitive="false" />
        <parameter name="user id" value="xxxxxxxx" isSensitive="false" />
    </parameters>
</connectionString>

有谁能告诉我如何配置此组件的连接池?我甚至是在配置文件中配置的吗?

我知道有一个与Microsoft.Practices.EnterprisesLibrary有关的Windows窗体工具,但我没有访问权限,所以我需要直接配置文件解决方案。

1 个答案:

答案 0 :(得分:1)

如果您使用的是基于文件的配置,则Enterprise Library将使用connectionStrings配置部分:

<connectionStrings>

    <add
        name="Sql Connection String" 
        providerName="System.Data.SqlClient"
        connectionString="server=xxx.xxx.xxx.xxx;database=DB name;
Integrated Security=false;User ID=xxxxxxxx;Password=xxx;Pooling=true;
Min Pool Size=5;Max Pool Size=20;" />

</connectionStrings>

如果您使用fluent configuration,它将如下所示:

var builder = new ConfigurationSourceBuilder();

builder.ConfigureData()
       .ForDatabaseNamed("Sql Database")
         .ThatIs.ASqlDatabase()
         .WithConnectionString("server=xxx.xxx.xxx.xxx;database=DB name;
Integrated Security=false;User ID=xxxxxxxx;Password=xxx;Pooling=true;
Min Pool Size=5;Max Pool Size=20;")
         .AsDefault();

var configSource = new DictionaryConfigurationSource();
builder.UpdateConfigurationWithReplace(configSource);
EnterpriseLibraryContainer.Current 
  = EnterpriseLibraryContainer.CreateDefaultContainer(configSource);