PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

C# SqlConnection Eccezione:parola chiave non supportata 'Porta'

SqlConnection è specifico di SQL Server. Dovresti usare NpgsqlConnection per utilizzare una connessione Postgres, il che significa che avrai bisogno dei riferimenti agli assiemi Postgres.

Ma hai intenzione di passare a un provider diverso in futuro, quindi per ridurre al minimo l'impatto di tale spostamento, prova a utilizzare le classi base generiche nel tuo codice. Ad esempio:

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

In questo modo, quando effettui lo scambio, tutto ciò che devi fare è sostituire NpgsqlConnection nella tua soluzione con SqlConnection . Se desideri utilizzare DbProviderFactory (c'è un buon esempio lì dentro) allora puoi, ma in pratica stai solo salvando te stesso questa singola ricerca/sostituzione, rimuovendo i riferimenti e rilasciando una nuova versione del codice.

Suggerirei di mettere la stringa di connessione nel file di configurazione anziché codice (come mostrato nella domanda) per evitare di averlo in più posizioni e semplificare la modifica senza una ricostruzione.

E ovviamente potresti dover correggere tutti i dettagli specifici dell'implementazione nell'SQL stesso.