22

SQLServerからPostgreSQLに移植しようとしているプロジェクトがあります。DbProviderFactoryNpgsqlを使用できないことを除いて、私は信じているほとんどすべてのことを実行しました。

Factory = DbProviderFactories.GetFactory("Npgsql");

収量

未処理の例外:System.Configuration.ConfigurationErrorsException:登録された.NetFrameworkデータプロバイダーの検索またはロードに失敗しました。

これを修正するにはどうすればよいですか?

4

5 に答える 5

15

app.configでファクトリを定義してみてください。

<system.data>
  <DbProviderFactories>
    <add name="Npgsql Data Provider" invariant="Npgsql"
         description="Data Provider for PostgreSQL"
         type="Npgsql.NpgsqlFactory, Npgsql" />
  </DbProviderFactories>
</system.data>

http://fxjr.blogspot.pt/2013/06/npgsql-code-first-entity-framework-431.html経由

于 2013-11-08T19:28:38.163 に答える
9

ファインマニュアルのセクション3.4「ProviderFactoryでのNpgsqlの使用」を読んだことがありますか?

于 2010-08-02T10:10:27.430 に答える
1

タイプ属性値は、DbProviderFactoriesエントリで重要です。

私にとって、バージョン番号は正しくありませんでした。正しいバージョンは:

<system.data>
  <DbProviderFactories>
    <add name="Npgsql Data Provider" 
         invariant="Npgsql" 
         support="FF" 
         description=".Net Framework Data Provider for Postgresql Server" 
         type="Npgsql.NpgsqlFactory, Npgsql, Version=2.2.3.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7" />
  </DbProviderFactories>
</system.data>

プロジェクトの値は、次のコマンドで取得できます。

typeof(Npgsql.NpgsqlFactory).AssemblyQualifiedName
于 2015-01-11T13:42:19.863 に答える
1

これらは私のためにそれを解決したステップでした:

(1).NETMicrosoftFrameworkフォルダーにあるmachine.configファイルにDbFactoryプロバイダーを追加します

(2)gacutilを使用してnpgsql.dllとmono.security.dllをGACに登録します


ステップバイステップの詳細:

(1)DbFactoryプロバイダーをmachine.configに追加します

a。関連するNETFramework構成ディレクトリに移動します(例:C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Config)

b。machine.configファイルを編集し、以下の行をDbProviderFactoriesに追加します

<DbProviderFactories>
    <add name="Npgsql Data Provider" 
         invariant="Npgsql" 
         support="FF" 
         description=".Net Framework Data Provider for Postgresql Server" 
         type="Npgsql.NpgsqlFactory, Npgsql"/>
  </DbProviderFactories>

(2)npgsql.dllとmono.security.dllをGACに登録します

a。npgsqlとmono.securityがGACフォルダーにあるかどうかを確認します(私のGACフォルダーはC:\ Windows \ Microsoft.NET \ assembly \ GAC_MSILにありました)

そうでない場合は、gacutilを使用して、gacutil /inpgsql.dllを使用してコマンドプロンプトでGACにnpgsqlをインストールします。

于 2015-12-28T12:54:20.447 に答える
0

ngsqlとmono.securitydllをGACに登録し、[32ビットバージョンと64ビットバージョン]の両方のmachine.configにdbfactoryプロバイダーを追加します。

于 2013-11-07T15:09:59.553 に答える