SqlConnection
jest specyficzny dla SQL Server. Będziesz musiał użyć NpgsqlConnection
aby użyć połączenia Postgres, co oznacza, że będziesz potrzebować odniesień do zestawów Postgres.
Ale zamierzasz w przyszłości przenieść się do innego dostawcy, więc aby zminimalizować wpływ tego przeniesienia, spróbuj użyć ogólnych klas bazowych w swoim kodzie. Na przykład:
var connString = "Host=myserver;Username=mylogin;Password=mypass;Database=mydatabase";
using (DbConnection conn = new NpgsqlConnection(connString))
{
conn.Open()
using (DbCommand command = conn.CreateCommand())
{
// etc
}
}
W ten sposób, po zamianie, wszystko, co musisz zrobić, to zastąpić NpgsqlConnection
w całym rozwiązaniu dzięki SqlConnection
. Jeśli chcesz użyć DbProviderFactory (jest tam dobry przykład) wtedy możesz, ale w zasadzie oszczędzasz sobie tylko to pojedyncze wyszukiwanie/zastępowanie, usuwanie odwołań i wydawanie nowej wersji kodu.
Proponuję umieszczenie ciąg połączenia w pliku konfiguracyjnym zamiast kodu (jak pokazano w pytaniu), aby uniknąć posiadania go w wielu miejscach i ułatwić wprowadzanie zmian bez przebudowy.
I oczywiście może być konieczne poprawienie wszelkich szczegółów dotyczących implementacji w samym SQL.