Partilhar via


Obter um SqlClientFactory

Aplica-se a: .NET Framework .NET .NET Standard

Baixar ADO.NET

O processo de obtenção de um DbProviderFactory envolve a passagem de informações sobre um provedor de dados para a DbProviderFactories classe. Com base nessas informações, o GetFactory método cria uma fábrica de provedor fortemente tipada. Por exemplo, para criar um SqlClientFactory, pode passar GetFactory uma string com o nome do fornecedor especificado como "Microsoft.Data.SqlClient".

A outra sobrecarga de GetFactory leva um DataRow. Depois de criar a fábrica do provedor, você pode usar seus métodos para criar objetos adicionais. Alguns dos métodos de um SqlClientFactory incluem CreateConnection, CreateCommand, e CreateDataAdapter.

Registar SqlClientFactory

Para recuperar o SqlClientFactory objeto pela DbProviderFactories classe no .NET Framework, é necessário registá-lo num ficheiroApp.config ou web.config . O fragmento do arquivo de configuração a seguir mostra a sintaxe e o formato do Microsoft.Data.SqlClient.

<system.data>
  <DbProviderFactories>
    <add name="Microsoft SqlClient Data Provider"
      invariant="Microsoft.Data.SqlClient"
      description="Microsoft SqlClient Data Provider for SQL Server"
      type="Microsoft.Data.SqlClient.SqlClientFactory, Microsoft.Data.SqlClient, Version=2.0.20168.4, Culture=neutral, PublicKeyToken=23ec7fc2d6eaa4a5"/>
  </DbProviderFactories>
</system.data>  

O atributo invariante identifica o fornecedor de dados subjacente. Essa sintaxe de nomenclatura de três partes também é usada ao criar uma nova fábrica e para identificar o provedor em um arquivo de configuração de aplicativo para que o nome do provedor, juntamente com sua cadeia de conexão associada, possa ser recuperado em tempo de execução.

Observação

No .NET core, como não existe suporte para GAC ou configuração global, o SqlClientFactory objeto deve ser registado chamando RegisterFactory o método no projeto.

O exemplo seguinte mostra como usar o SqlClientFactory numa aplicação .NET core.

private static DbProviderFactory GetFactory()
{
    // register SqlClientFactory in provider factories
    DbProviderFactories.RegisterFactory("Microsoft.Data.SqlClient", SqlClientFactory.Instance);

    return DbProviderFactories.GetFactory("Microsoft.Data.SqlClient");
}

Consulte também