Microsoft Enterprise Library - Как создать базу данных на основе типа - PullRequest
0 голосов
/ 13 октября 2010

Я использую 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 в конфигурации.

Я хочу создать объект базы данных MySQL на основе конфигурации providerMapping.

Как я могу это сделать?

Спасибо.

PS.Английский не мой родной язык, я стараюсь изо всех сил.

1 Ответ

0 голосов
/ 13 октября 2010

Если вы заранее знаете, что используете MySql, и предполагаете, что класс MySqlDatabase следует тем же шаблонам, что и классы Database в базовом Entlib, то вы можете просто обновить его напрямую, вам не нужно пройти фабричный метод.

Database mySql = new MySqlDatabase(currentConnectionString);

должно просто работать. Вам нужно пройти через фабрику, только если вы извлекаете именованные строки подключения из конфигурации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...