2

テストするためだけに単純なasp.netWebアプリを構築し(本番サイト用に何かが構築される前に明らかにリファクタリングします)、最新バージョンのエンタープライズライブラリを使用して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データプロバイダーがあります。ただし、リリースされたものはEntLib4.1を対象としています。v5.0への移植作業が進行中であることがわかりますが、データアクセスブロックはまだ完了していないようです。自分で移植する必要があるかもしれません。

使用しているファクトリはEntLibに対応していないようです。エンタープライズライブラリの拡張性ハンズオンラボで、ConfigurationElementTypeAttributeの適切な処理と、EntLibを拡張する方法に関するその他のガイダンスを見つけることができます。

于 2011-08-15T14:47:42.113 に答える