构建一个简单的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对该属性没有太多说明,它说的内容似乎与我正在做的事情有关...任何帮助将不胜感激。
谢谢!
答案 0 :(得分:1)
EntLib不支持开箱即用的MySql。 EntLibContrib有一个合适的MySql Data Provider。然而,发布的那个目标是EntLib4.1。我可以看到v5.0的移植工作是under way,但数据访问块似乎还没有完成。你可能需要移植自己。
您使用的工厂似乎不是启用EntLib的。您可以找到对ConfigurationElementTypeAttribute的良好处理以及有关如何在Enterprise Library Extensibility Hands-on Labs中扩展EntLib的其他指导。