14

Visual Studio でカスタム DB プロバイダーを使用したいと考えていました。Entity Framework を使用するために必要です。

たとえば、NpgSQL をダウンロードし、GAC に登録しました。

gacutil  -i  c:\temp\npgsql.dll
gacutil  -i  c:\temp\mono.security.dll

machine.config ファイルに次のように追加されます。

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

しかし、Npgsql は Visual Studio のデータソース リストに表示されませんでした。

VS のデータ ソース

このリストにカスタム DB プロバイダーを追加するにはどうすればよいですか?

UPD: コマンド文字列 edmgen.exe を使用すると、エラーが発生しました:

エラー 7001: 登録された .Net Framework Data Provider の検索または読み込みに失敗しました。

4

4 に答える 4

3

構成ファイル (Web.config、Machine.config など) で DbFactoryProvider を宣言する必要があります。以下は、MySQL を使用したプロジェクトから取得したサンプルです。

<システムデータ>
  <DbProviderFactory>
    <remove invariant="MySql.Data.MySqlClient"/>
    <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.3.6.0, Culture=neutral、PublicKeyToken=c5687fc88969c44d"/>
  </DbProviderFactory>
</system.data>

また、アプリケーション レベルの構成ファイルでこれらを宣言し、アプリでアセンブリのローカル コピーを使用することも好みます。サードパーティのプロバイダーが GAC で利用できることを保証できないため、これは移植性に役立ちます。

于 2011-02-04T15:06:42.303 に答える
3

旧 (2013 年 2 月 7 日から): NpgSql は現時点で DDEX をサポートしていないため、Npgsql プロバイダーを追加して Visual Studio にアクセスすることはできません。

2013 年 12 月 29 日の更新: DDEX のサポートが追加されたようです。

于 2011-02-07T15:29:21.917 に答える
2

Visual Studio の Datasource リストに Npgsql を一覧表示する場合は、この記事が少し役立つかもしれません。

いずれにせよ、Visual Studio は Microsoft によって提供されているため、明らかにレジストリ テーブルを操作する必要があります。

于 2012-09-06T04:14:48.910 に答える
0

から: http://fxjr.blogspot.com/2011/05/npgsql-design-time-support-preview.html

あなたがしなければならない非常に重要なステップがあります: Npgsql.Designer2 フォルダー内に、NpgsqlProvider.gen.reg というファイルがあります。VS.Net を起動してプロジェクトをデバッグするたびに、このファイルをレジストリにマージする必要があります。

于 2011-09-05T06:20:05.980 に答える