2011-02-04 22 views
14

Quería trabajar con un proveedor de DB personalizado en Visual Studio. Lo necesito para usar Entity Framework.¿Cómo agregar un proveedor de bases de datos personalizadas para que sea accesible en Visual Studio?

Por ejemplo, he descargado Npgsql, ellos registrado en la GAC:

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

y se añade al archivo 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" /> 

Pero Npgsql no apareció en la lista de origen de datos en Visual Studio :

Data source in VS

¿Cómo agregar un proveedor de DB personalizada a esta lista?

UPD: Si utilizo cadena de comandos EdmGen.exe llegué error:

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

Respuesta

3

Viejo (del 7 de febrero de 2013): es imposible agregar el proveedor de Npgsql para ser accesible en Visual Studio, porque NpgSql por ahora no es compatible con DDEX.

Actualización el 29 de diciembre de 2013: Parece que el soporte DDEX era added.

+3

Estamos trabajando en este soporte. Esperamos que se agregue pronto. –

+0

Solo un seguimiento: agregamos soporte para eso en nuestra versión 2.2 beta1. Puede obtener más información sobre cómo compilarlo, configurarlo e instalarlo aquí: https://github.com/npgsql/Npgsql/wiki/Visual-Studio-Design-Time-Support---DDEX-Provider Espero que ayude –

3

Es necesario declarar la DbFactoryProvider en un archivo de configuración (Web.config, Machine.config, etc). He aquí una muestra de uno me sacó de un proyecto usando 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> 

también prefiero declarar estos en los ficheros de configuración de nivel de aplicación y tienen mis aplicaciones utilizan la copia local de la asamblea. Esto ayuda con la portabilidad ya que no podemos garantizar que el proveedor de terceros esté disponible en GAC.

+0

Agregué al archivo machine.config el proveedor Npgsql, pero noté que sucedió. – Anton

+1

Debe elegir el machine.config correcto para editar. En el caso del sistema de 64 bits, edite c: \ Windows \ Microsoft.NET \ Framework64 \ v4.0. * \ Config \ machine.config; de lo contrario, utilice el directorio "Framework" en lugar de "Framework64" para buscar el archivo de configuración correcto. . –

2

Si desea incluir hasta Npgsql en la lista de origen de datos en Visual Studio, este article puede ser un poco útil.

De todos modos, dado que Visual Studio es entregado por Microsoft, obviamente necesita trabajar en la tabla de registro.

Cuestiones relacionadas