visual tutorial studio npgsqlconnection net framework for .net postgresql mono dbproviderfactories

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



registre ngsql y mono.security dll en GAC y agregue dbfactory provider en machine.config para [versión de 32 y 64 bits]