2011-02-04 7 views
14

Visual StudioでカスタムDBプロバイダを使いたいと思っていました。私はEntity Frameworkを使用するために必要です。Visual Studioでアクセス可能なカスタムDBプロバイダを追加するには?

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でのデータソースの一覧に表示されませんでした

は例えば、私は がGACにそれらを登録し、Npgsqlのダウンロード:

Data source in VS

このリストにカスタムDBプロバイダを追加する方法は?

UPD:私は、コマンド文字列edmgen.exeを使用している場合、私はエラーを得た:

error 7001: Failed to find or load the registered .Net Framework Data Provider.

答えて

3

(7 Fabruary 2013から)旧:Npgsqlのが今のDDEXをサポートしていないので、Visual Studioの中づけしするNpgsqlのプロバイダを追加することは不可能です。 2013年12月の29日

更新:DDEXのサポートがaddedだったようです。

+3

私たちはこのサポートに取り組んでいます。我々はすぐにそれを追加することを願っています。 –

+0

フォローアップ:2.2ベータ1のサポートを追加しました。ここでコンパイル、設定、インストールする方法の詳細については、こちらをご覧ください:https://github.com/npgsql/Npgsql/wiki/Visual-Studio-Design-Time-Support---DDEX-Provider –

3

あなたが設定ファイル(Web.configファイル、のMachine.configなど)でDbFactoryProviderを宣言する必要があります。

 
<system.data> 
    <DbProviderFactories> 
    <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"/> 
    </DbProviderFactories> 
</system.data> 

私はまた、アプリケーション・レベルの設定ファイルにこれらを宣言好むと私のアプリは、アセンブリのローカルコピーを使用してい:ここで私はMySQLを使用してプロジェクトから引き出さサンプル一つです。これは、サードパーティのプロバイダがGACで利用可能であることを保証できないため、移植性の向上に役立ちます。

+0

machine.configファイルNpgsql providerに追加しましたが、問題が発生しました。 – Anton

+1

編集するには適切なmachine.configを選択する必要があります。 64ビットシステムの場合、c:\ Windows \ Microsoft.NET \ Framework64 \ v4.0。* \ Config \ machine.configを編集し、そうでなければ "Framework64"の代わりに "Framework"ディレクトリを使用して正しい設定ファイルを探します。 –

2

は、Visual StudioでデータソースリストにNpgsqlのをリストアップしたい場合は、このarticleは少し役に立つかもしれません。

のVisual Studioは、Microsoftによって提供されているのでとにかく、明らかにあなたは、レジストリテーブルで作業する必要があります。

関連する問題