PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Exceção C# SqlConnection:palavra-chave não suportada 'Porta'


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.