web-dev-qa-db-ja.com

Microsoft.Practices.EnterpriseLibrary.Data.DLLがユーザーコードで処理されなかった

グーグルを検索し、エンタープライズライブラリデータアクセスを使用してデータベースに接続しました。

https://www.nuget.org/packages/EnterpriseLibrary.Data/ を使用してデータアクセスパックのみをインストールしました。

プロジェクトに追加した後、次のように構成を設定しました。

     <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="false" />
    </configSections>
  <dataConfiguration defaultDatabase="dProvider" />
    <connectionStrings>
        <add name="dProvider" connectionString="server=local;Initial Catalog=n;uid=sa;pwd=pwd"
            providerName="System.Data.SqlClient" />
    </connectionStrings>

次のようなアプリケーションを介して呼び出され、

Database db;
            string sqlCommand;
            DbCommand dbCommand;

            db = DatabaseFactory.CreateDatabase("dProvider"); or DatabaseFactory.CreateDatabase();

アプリケーションを実行した後、次の例外が発生しました、

{"Database provider factory not set for the static DatabaseFactory. Set a provider factory invoking the DatabaseFactory.SetProviderFactory method or by specifying custom mappings by calling the DatabaseFactory.SetDatabases method."}

私はどんな間違いをしましたか?この問題を解決するには?

13
Jeeva Jsb

ようやく答えが見つかりました。構成セクションのために発生しました。

私はバージョン6を使用しましたが、ここでは構成セクションでバージョン5のように言及しました。したがって、エラーが発生しました。

私は次のように構成セクションを置き換えました、それは良い方法で完全に機能しました。 :-)。ヘルパーに感謝します。

<configSections>
         <section name="dataConfiguration" 
      type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, 
            Microsoft.Practices.EnterpriseLibrary.Data"/>
    </configSections>

dataBaseProviderFactoryクラスを使用してインスタンスを作成しました。

DatabaseProviderFactory factory = new DatabaseProviderFactory();

            db = factory.Create("dProvider");
22
Jeeva Jsb