Ottenere un oggetto SqlClientFactory
Si applica a: .NET Framework .NET .NET Standard
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");
}