SqlConnection
é específico do SQL Server. Você precisaria usar NpgsqlConnection
para usar uma conexão Postgres, o que significa que você precisará das referências aos assemblies Postgres. Mas você pretende migrar para um provedor diferente no futuro, portanto, para minimizar o impacto dessa mudança, tente usar as classes base genéricas em seu código. Por exemplo:
var connString = "Host=myserver;Username=mylogin;Password=mypass;Database=mydatabase";
using (DbConnection conn = new NpgsqlConnection(connString))
{
conn.Open()
using (DbCommand command = conn.CreateCommand())
{
// etc
}
}
Dessa forma, ao trocar, tudo o que você precisa fazer é substituir
NpgsqlConnection
em sua solução com SqlConnection
. Se você quiser usar DbProviderFactory (há um bom exemplo lá) então você pode, mas basicamente você está apenas salvando essa única pesquisa/substituição, removendo as referências e liberando uma nova versão do código. Eu sugiro colocar a string de conexão no arquivo de configuração em vez de código (como mostrado na pergunta) para evitar tê-lo em vários lugares e facilitar a alteração sem uma reconstrução.
E é claro que você pode ter que corrigir quaisquer detalhes específicos da implementação no próprio SQL.