Udostępnij przez


Uzyskiwanie elementu SqlClientFactory

Dotyczy: .NET Framework .NET Standard

Pobieranie ADO.NET

Proces uzyskiwania obiektu DbProviderFactory obejmuje przekazywanie informacji o dostawcy danych do DbProviderFactories klasy. Na podstawie tych informacji GetFactory metoda tworzy silnie typizowana fabrykę dostawcy. Aby na przykład utworzyć obiekt SqlClientFactory, można przekazać GetFactory ciąg z nazwą dostawcy określoną jako "Microsoft.Data.SqlClient".

Inne przeciążenie przyjmuje GetFactory element DataRow. Po utworzeniu fabryki dostawcy możesz użyć jej metod w celu utworzenia dodatkowych obiektów. Niektóre metody elementu SqlClientFactory to CreateConnection, CreateCommandi CreateDataAdapter.

Zarejestruj SqlClientFactory

Aby pobrać obiekt przy użyciu klasy SqlClientFactoryDbProviderFactories w .NET Framework, należy zarejestrować go w pliku App.config lub web.config. Poniższy fragment pliku konfiguracji przedstawia składnię i format pliku .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>  

Niezmienny atrybut identyfikuje bazowego dostawcę danych. Ta trzyczęściowa składnia nazewnictwa jest również używana podczas tworzenia nowej fabryki i identyfikowania dostawcy w pliku konfiguracji aplikacji, aby można było pobrać nazwę dostawcy wraz ze skojarzonymi parametry połączenia w czasie wykonywania.

Uwaga / Notatka

W programie .NET Core, ponieważ nie ma GAC ani obsługi konfiguracji globalnej, obiekt SqlClientFactory powinien zostać zarejestrowany wywołując metodę RegisterFactory w projekcie.

W poniższym przykładzie pokazano, jak używać funkcji SqlClientFactory w aplikacji .NET Core.

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

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

Zobacz także