Obtenir un SqlClientFactory
S'applique à : .NET Framework .NET .NET Standard
Le processus d'obtention d'un objet DbProviderFactory implique de passer des informations à propos d'un fournisseur de données à la classe DbProviderFactories. En fonction de ces informations, la méthode GetFactory crée une fabrique de fournisseurs fortement typée. Par exemple, pour créer un SqlClientFactory, vous pouvez passer à GetFactory
une chaîne avec le nom du fournisseur spécifié, comme « Microsoft.Data.SqlClient ».
L'autre surcharge de GetFactory
prend un objet DataRow. Une fois que vous avez créé la fabrique de fournisseurs, vous pouvez ensuite utiliser ses méthodes pour créer des objets supplémentaires. Parmi les méthodes d'un SqlClientFactory
, citons CreateConnection, CreateCommand et CreateDataAdapter.
Inscrire SqlClientFactory
Pour récupérer l’objet SqlClientFactory par la classe DbProviderFactories dans .NET Framework, il est nécessaire de l’inscrire dans un fichier App.config ou web.config. Le fragment de fichier de configuration suivant montre la syntaxe et le format de 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’attribut invariant identifie le fournisseur de données sous-jacent. Cette syntaxe d'attribution de nom en trois parties est également utilisée lors de la création d'une fabrique et pour l'identification du fournisseur dans un fichier de configuration d'application de manière à ce que le nom du fournisseur, ainsi que sa chaîne de connexion associée, puissent être récupérés au moment de l'exécution.
Notes
Dans .NET Core, étant donné qu’il n’existe pas de prise en charge de GAC ou de la configuration globale, l’objet SqlClientFactory doit être inscrit en appelant la méthode RegisterFactory dans le projet.
L’exemple suivant montre comment utiliser SqlClientFactory dans une application .NET Core.
private static DbProviderFactory GetFactory()
{
// register SqlClientFactory in provider factories
DbProviderFactories.RegisterFactory("Microsoft.Data.SqlClient", SqlClientFactory.Instance);
return DbProviderFactories.GetFactory("Microsoft.Data.SqlClient");
}