Freigeben über


Abrufen von SqlClientFactory

Gilt für: .NET Framework .NET .NET Standard

Herunterladen von ADO.NET

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");
}

Weitere Informationen