sql >> Base de Datos >  >> RDS >> PostgreSQL

Excepción de C# SqlConnection:palabra clave no admitida 'Puerto'

SqlConnection es específico de SQL Server. Debería usar NpgsqlConnection para usar una conexión de Postgres, lo que significa que necesitará las referencias a los ensamblados de Postgres.

Pero tiene la intención de pasar a un proveedor diferente en el futuro, por lo que para minimizar el impacto de ese movimiento, intente usar las clases base genéricas en su código. Por ejemplo:

var connString = "Host=myserver;Username=mylogin;Password=mypass;Database=mydatabase";
using (DbConnection conn = new NpgsqlConnection(connString))
{
    conn.Open()
    using (DbCommand command = conn.CreateCommand())
    {
        // etc
    }
}

De esta manera, cuando cambie, todo lo que necesita hacer es reemplazar NpgsqlConnection a través de su solución con SqlConnection . Si desea utilizar DbProviderFactory (hay un buen ejemplo allí), entonces puede, pero básicamente solo se está ahorrando esta única búsqueda/reemplazo, eliminando las referencias y lanzando una nueva versión del código.

Yo sugeriría poner la cadena de conexión en el archivo de configuración en lugar de código (como se muestra en la pregunta) para evitar tenerlo en varios lugares y facilitar el cambio sin una reconstrucción.

Y, por supuesto, es posible que deba corregir cualquier detalle específico de la implementación en el propio SQL.