MySQL 6与Enterprise Library Data 5的连接

时间:2011-07-06 17:48:54

标签: c# asp.net enterprise-library-5 mysql6

构建一个简单的asp.net Web应用程序只是为了测试(显然会在为生产站点构建任何内容之前重构),并且我正在尝试使用最新版本的Enterprise Library连接到mysql数据库,并遇到错误: “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 个答案:

答案 0 :(得分:1)

EntLib不支持开箱即用的MySql。 EntLibContrib有一个合适的MySql Data Provider。然而,发布的那个目标是EntLib4.1。我可以看到v5.0的移植工作是under way,但数据访问块似乎还没有完成。你可能需要移植自己。

您使用的工厂似乎不是启用EntLib的。您可以找到对ConfigurationElementTypeAttribute的良好处理以及有关如何在Enterprise Library Extensibility Hands-on Labs中扩展EntLib的其他指导。