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.