Соединение MySQL 6 с данными Enterprise Library 5 - PullRequest
2 голосов
/ 06 июля 2011

Создание простого веб-приложения 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 Ответ

1 голос
/ 15 августа 2011

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

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

...