Соединение MySQL 6 с данными Enterprise Library 5

Создаю простое веб-приложение asp.net только для того, чтобы проверить его (очевидно, будет произведен рефакторинг, прежде чем что-либо будет создано для рабочего сайта), и я пытаюсь подключиться к базе данных mysql с использованием последней версии Enterprise Library, и я работаю в ошибку: "Тип MySqlClientFactory не содержит ConfigurationElementTypeAttribute."

Я прошел через несколько различных попыток настроить конфигурацию и, основываясь на всем, что я нашел, перевел это к следующему: в моем web.config я получил это:

<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="MyDB">
<providerMappings>
  <add name="MySql.Data.MySqlClient" databaseType="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data,Version=6.3.6,Culture=neutral,PublicKeyToken=c5687fc88969c44d"/>
</providerMappings>
</dataConfiguration>
<connectionStrings>
     <add name="MyDB" connectionString="Server=localhost;Database=MyDB;Uid=root;Pwd=****;"
     providerName="MySql.Data.MySqlClient"/>
</connectionStrings>

и на моей странице default.aspx я получил это:

protected void Page_Load(object sender, EventArgs e)
{
    string sql = "select * from users";
    Database db = EnterpriseLibraryContainer.Current.GetInstance<Database>("MyDB");

    var reader = db.ExecuteReader(CommandType.Text, sql);
    while (reader.NextResult())
    {
        Response.Write(reader["userName"] + "<br />");
    }
}

Итак, очень просто... но опять же, я получаю ошибку: "Тип MySqlClientFactory не содержит ConfigurationElementTypeAttribute."

и я не могу найти никакой ссылки на это... MSDN не говорит много об этом атрибуте, и то, что он говорит, я не могу сказать, что я не имею отношения к тому, что я делаю... любая помощь будет оценена,

Спасибо!

1 ответ

Решение

EntLib не поддерживает MySql из коробки. EntLibContrib имеет правильный поставщик данных MySql. Однако выпущенный релиз нацелен на EntLib4.1. Я вижу, что работа по портированию на v5.0 идет полным ходом, но блок доступа к данным пока еще не завершен. Возможно, вам придется портировать себя.

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

Другие вопросы по тегам