Condividi tramite


Ottenere un oggetto SqlClientFactory

Si applica a: .NET Framework .NET .NET Standard

Scarica ADO.NET

Il processo di recupero di un oggetto DbProviderFactory implica il passaggio delle informazioni su un provider di dati alla classe DbProviderFactories. Sulla base di queste informazioni, il metodo GetFactory crea una factory del provider fortemente tipizzata. Ad esempio, per creare un’istanza di SqlClientFactory, è possibile passare a GetFactory una stringa con il nome del provider specificato come "Microsoft.Data.SqlClient".

L'altro overload di GetFactory accetta un oggetto DataRow. Dopo aver creato la factory del provider, è quindi possibile usarne i metodi per creare altri oggetti. I metodi di un oggetto SqlClientFactory includono CreateConnection, CreateCommande CreateDataAdapter.

Registrare un’istanza di SqlClientFactory

Per recuperare l'oggetto SqlClientFactory dalla classe DbProviderFactories in .NET Framework, è necessario registrarlo in un file App.config o web.config. Nel frammento di file di configurazione seguente sono illustrati la sintassi e il formato di 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>  

L'attributo invariant identifica il provider di dati sottostante. La sintassi di denominazione in tre parti viene inoltre usata durante la creazione di una nuova factory e per l'identificazione del provider in un file di configurazione dell'applicazione in modo da consentire il recupero del nome del provider, unitamente alla stringa di connessione associata, in fase di esecuzione.

Nota

In .NET Core, poiché non esiste alcun supporto della GAC o della configurazione globale, l'oggetto SqlClientFactory deve essere registrato chiamando il metodo RegisterFactory nel progetto.

Nell'esempio seguente viene illustrato come usare SqlClientFactory in un'applicazione .NET Core.

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

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

Vedi anche