构建一个简单的asp.net Web应用程序只是为了测试(显然会在为生产站点构建任何东西之前进行重构),并且我正在尝试使用最新版本的企业库连接到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没有对该属性做太多说明,它的确表明我似乎与我正在做的事情没有关系...任何帮助将不胜感激。
谢谢!
最佳答案
EntLib不支持开箱即用的MySql。 EntLibContrib具有正确的MySql Data Provider。但是,发布的版本针对EntLib4.1。我可以看到向v5.0的移植工作是under way,但似乎尚未完成数据访问功能。您可能需要移植自己。
您正在使用的工厂似乎未启用EntLib。您可以在Enterprise Library Extensibility Hands-on Labs中找到ConfigurationElementTypeAttribute的好方法,以及有关如何扩展EntLib的其他指南。
关于c# - MySQL 6与企业库数据5的连接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6600741/