Microsoft Enterprise Library - 如何基于Type创建数据库

时间:2010-10-13 16:12:04

标签: database enterprise-library

我正在使用Enterprise Library 4.1。

我有一个新功能要实现,它需要使用mysql。

我找到了Enterprise Library Contrib,它增加了使用MySQL和Enterprise Lib的功能。

效果很好。

要使其工作,您需要调用方法'DatabaseFactory.CreateDatabase(connectionStringName);'就像你通常做的那样。连接字符串名称存储在配置中,并链接到数据库提供程序映射配置部分。

作为例子:

  <dataConfiguration defaultDatabase="MyDefaultDb">
    <providerMappings>
      <add databaseType="EntLibContrib.Data.MySql.MySqlDatabase, EntLibContrib.Data.MySql, Version=4.1.0.0, Culture=neutral, PublicKeyToken=null" 
           name="MySql.Data.MySqlClient" />
    </providerMappings>
  </dataConfiguration>
  <connectionStrings>
    <add name="MyDefaultDb" 
         connectionString="" 
         ProviderName="System.Data.SqlClient" />
    <add name="acb_leaderboards"
         providerName="MySql.Data.MySqlClient"
         connectionString="" />
  </connectionStrings>

不幸的是,我的应用程序将连接到多个MySQL数据库,并且不断变化。我不能在配置中指定mysql连接字符串。

我想基于providerMapping配置创建一个MySQL数据库对象。

我该怎么做?

谢谢。

PS。 英语不是我的第一语言,我正在努力。

1 个答案:

答案 0 :(得分:0)

如果您提前知道您正在使用MySql,并假设MySqlDatabase类遵循与核心Entlib中的Database类相同的模式,那么您可以直接新建它,您不必通过工厂方法。

Database mySql = new MySqlDatabase(currentConnectionString);

应该正常工作。如果从配置中提取命名连接字符串,则只需要通过工厂。