2011-02-04 6 views
14

Volevo lavorare con il provider DB personalizzato in Visual Studio. Ne ho bisogno per usare Entity Framework.Come aggiungere un provider DB personalizzato per essere accessibile in Visual Studio?

Per esempio, ho scaricato NpgSQL, li registrati in GAC:

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

e aggiunto al file 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" /> 

Ma Npgsql non sembra in elenco origine dati in Visual Studio :

Data source in VS

Come aggiungere un provider DB personalizzato a questo elenco?

UPD: Se uso stringa di comando edmgen.exe ho ottenuto l'errore:

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

risposta

3

Vecchio (dal 7 febbraio 2013): È impossibile aggiungere il provider Npgsql per essere accessibile in Visual Studio, poiché NpgSql per ora non supporta DDEX.

Aggiornamento del 29 dicembre 2013: Sembra che il supporto DDEX sia stato added.

+3

Stiamo lavorando su questo supporto. Speriamo di averlo presto aggiunto. –

+0

Solo un seguito: abbiamo aggiunto il supporto per questo nel nostro 2.2 beta1. Puoi avere maggiori informazioni su come compilare, configurare e installare qui: https://github.com/npgsql/Npgsql/wiki/Visual-Studio-Design-Time-Support---DDEX-Provider Spero che aiuti –

3

È necessario dichiarare la DbFactoryProvider in un file di configurazione (Web.config, Machine.config, ecc). Ecco un esempio che ho tirato da un progetto che utilizza MySQL:

 
<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> 

ho anche preferire dichiarando questi nel file di configurazione a livello di applicazione e di avere le mie applicazioni utilizzano la copia locale del gruppo. Questo aiuta con la portabilità poiché non possiamo garantire che il fornitore di terze parti sia disponibile in GAC.

+0

Ho aggiunto al file machine.config il provider Npgsql, ma ho notato che è successo. – Anton

+1

È necessario scegliere il machine.config corretto da modificare. In caso di sistema a 64 bit, modificare c: \ Windows \ Microsoft.NET \ Framework64 \ v4.0. * \ Config \ machine.config, altrimenti utilizzare la directory "Framework" anziché "Framework64" per individuare il file di configurazione corretto . –

2

Se si vuole elencare Npgsql nell'elenco origine dati in Visual Studio, questo article può essere un po 'utile.

In ogni caso, poiché Visual Studio viene fornito da Microsoft, ovviamente è necessario lavorare sulla tabella del registro.