Abrufen von SqlClientFactory
Gilt für: .NET Framework .NET .NET Standard
Der Prozess des Abrufens einer DbProviderFactory beinhaltet die Übergabe von Informationen zu einem Datenanbieter an die DbProviderFactories-Klasse. Auf der Grundlage dieser Informationen erstellt die GetFactory-Methode eine stark typisierte Anbieterfactory. Zum Erstellen von SqlClientFactory können Sie z. B. eine Zeichenfolge an GetFactory
übergeben, in der der Name des Anbieters als „Microsoft.Data.SqlClient“ angegeben ist.
Die andere Überladung von GetFactory
verwendet eine DataRow. Nach dem Erstellen der Anbieterfactory können Sie deren Methoden zum Erstellen zusätzlicher Objekte verwenden. Zu den Methoden einer SqlClientFactory
gehören u. a. CreateConnection, CreateCommand und CreateDataAdapter.
Registrieren von SqlClientFactory
Zum Abrufen des SqlClientFactory-Objekts durch die DbProviderFactories-Klasse in .NET Framework ist es erforderlich, es in einer App.config- oder web.config-Datei zu registrieren. Das folgende Konfigurationsdateifragment zeigt die Syntax und das Format für 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>
Das invariant-Attribut identifiziert den zugrunde liegenden Datenanbieter. Diese dreiteilige Benennungssyntax wird auch zum Erstellen einer neuen Factory und zum Identifizieren des Anbieters in einer Anwendungskonfigurationsdatei verwendet, sodass der Anbietername und die damit verknüpfte Verbindungszeichenfolge zur Laufzeit abgerufen werden können.
Hinweis
In .NET Core sollte das SqlClientFactory-Objekt durch den Aufruf einer RegisterFactory-Methode im Projekt registriert werden, da es keine GAC- oder globale Konfigurationsunterstützung gibt.
Im folgenden Beispiel wird gezeigt, wie SqlClientFactory in einer .NET Core-Anwendung verwendet wird.
private static DbProviderFactory GetFactory()
{
// register SqlClientFactory in provider factories
DbProviderFactories.RegisterFactory("Microsoft.Data.SqlClient", SqlClientFactory.Instance);
return DbProviderFactories.GetFactory("Microsoft.Data.SqlClient");
}