tutorial - npgsql.net download
DbProviderFactory con Npgsql? (5)
¿Ha leído la sección 3.4 "Uso de Npgsql con ProviderFactory" del manual detallado?
Tengo un proyecto que estoy tratando de portar desde SQL Server a PostgreSQL. Creo que casi todo está hecho, excepto que no puedo hacer que DbProviderFactory
funcione con Npgsql.
Factory = DbProviderFactories.GetFactory("Npgsql");
rendimientos
Excepción no controlada: System.Configuration.ConfigurationErrorsException: No se pudo encontrar o cargar el proveedor de datos de .Net Framework registrado.
¿Cómo puedo solucionar esto?
El valor del atributo de tipo es importante en la entrada DbProviderFactories .
Para mí, el número de versión era incorrecto. La versión correcta fue:
<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>
Puede recuperar el valor en su proyecto con:
typeof(Npgsql.NpgsqlFactory).AssemblyQualifiedName
Estos fueron los pasos que me lo resolvieron:
(1) agregue el proveedor DbFactory al archivo machine.config ubicado en la carpeta Microsoft Frameworking de .NET
(2) registre npgsql.dll y mono.security.dll en GAC usando gacutil
Detalles paso a paso para:
(1) agregue el proveedor de DbFactory a machine.config
a. diríjase a su directorio de configuración de NET Framework relevante (por ejemplo, C: / Windows / Microsoft.NET / Framework64 / v4.0.30319 / Config)
segundo. edite el archivo machine.config y agregue la siguiente línea a 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) registre npgsql.dll y mono.security.dll en GAC
a. verifique si npgsql y mono.security están en la carpeta GAC (mi carpeta GAC estaba ubicada en C: / Windows / Microsoft.NET / assembly / GAC_MSIL)
Si no, use gacutil para instalar npgsql en GAC en el símbolo del sistema usando gacutil / i npgsql.dll
Intenta definir una fábrica en tu app.config:
<system.data>
<DbProviderFactories>
<add name="Npgsql Data Provider" invariant="Npgsql"
description="Data Provider for PostgreSQL"
type="Npgsql.NpgsqlFactory, Npgsql" />
</DbProviderFactories>
</system.data>
A través de http://fxjr.blogspot.pt/2013/06/npgsql-code-first-entity-framework-431.html
registre ngsql y mono.security dll en GAC y agregue dbfactory provider en machine.config para [versión de 32 y 64 bits]