2

构建一个简单的 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 并没有说太多关于该属性的内容,它所说的我似乎与我正在做的事情无关...任何帮助将不胜感激.

谢谢!

4

1 回答 1

1

EntLib 不支持开箱即用的 MySql。EntLibContrib 有一个适当的MySql Data Provider。然而,发布的版本针对的是 EntLib4.1。我可以看到 v5.0 的移植工作正在进行中,但数据访问块似乎还没有完成。您可能需要自己移植。

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

于 2011-08-15T14:47:42.113 回答