Przestrzeń nazw Microsoft.Data.SqlClient i zgodność

Przestrzeń nazw Microsoft.Data.SqlClient zawiera obsługiwanego dostawcę danych .NET dla baz danych zgodnych z SQL Server. Początkowo był forkiem System.Data.SqlClient i zachowuje znany model programowania ADO.NET, jednocześnie wprowadzając nowe funkcje SQL Server niezależnie od środowiska uruchomieniowego .NET.

Użyj Microsoft.Data.SqlClient do nowych opracowań.

Zainstaluj i zaimportuj przestrzeń nazw

Dodaj pakiet NuGet:

dotnet add package Microsoft.Data.SqlClient

Zaimportuj przestrzeń nazw:

using Microsoft.Data.SqlClient;

Większość aplikacji używa SqlConnection, SqlCommand, SqlParameter, SqlDataReader, oraz .SqlTransaction Pełny publiczny interfejs API opisano w dokumentacji interfejsu API Microsoft.Data.SqlClient.

Związek z ADO.NET

Microsoft. Data.SqlClient implementuje niezależne od dostawcy typy z System.Data.Common, w tym DbConnection, DbCommand, DbDataReader, oraz DbTransaction. Oferuje także specyficzne dla SQL Server API takie jak:

  • SqlBulkCopy
  • SqlBatch
  • SqlConnectionStringBuilder
  • SqlConfigurableRetryFactory
  • SqlDependency
  • Specyficzna dla SQL Server uwierzytelnianie, szyfrowanie i wsparcie dla typów danych

Aby uzyskać wskazówki dotyczące wyboru API niezależnych od dostawcy lub specyficznych dla SqlClient, zobacz architekturę ADO.NET z Microsoft. Data.SqlClient.

Związek z System.Data.SqlClient

System.Data.SqlClient jest starszym dostawcą, który wchodzi w skład platformy .NET Framework oraz wcześniejszych wydań platformy .NET. Microsoft.Data.SqlClient używa wielu tych samych nazw typów, ale posiada różne pakiety, przestrzenie nazw, domyślne konfiguracje, funkcje i polityki wsparcia.

Nie odwołuj się do obu dostawców w nowym kodzie aplikacji. Typy o tej samej nazwie z obu pakietów nie są wymienne. System.Data.SqlClient.SqlConnection, na przykład, nie może zostać przekazane w miejscu, w którym wymagane jest Microsoft.Data.SqlClient.SqlConnection.

Migracja zwykle zaczyna się od dodania pakietu Microsoft.Data.SqlClient i zmiany odniesień do przestrzeni nazw, ale musisz także przejrzeć szyfrowanie połączenia, parametry, konfigurację, zależności tranzytywne oraz zachowanie w czasie działania. Postępuj zgodnie z instrukcjami w Migracja z System.Data.SqlClient do Microsoft.Data.SqlClient przed wdrożeniem.

Zgodność wersji

Wersja pakietu sterownika jest niezależna od wersji .NET aplikacji oraz wersji silnika bazy danych. Sprawdź wszystkie trzy:

Component Co należy zweryfikować
Microsoft.Data.SqlClient Linia wydania jest obsługiwana i zawiera funkcje, z których korzysta Twoja aplikacja.
.NET lub .NET Framework Aplikacja celuje w czas działania obsługiwany przez tę wersję sterownika.
Baza danych zgodna z SQL Server Wersja sterownika obsługuje wersję bazy danych, a serwer obsługuje dowolną żądaną funkcję protokołu, taką jak TDS 8.0.

Aktualne macierze można znaleźć w cyklu życia wsparcia sterowników SqlClient.

Zmiany specyficzne dla wersji

Wersje sterowników mogą dodawać API, przenosić opcjonalne zależności oraz zmieniać bezpieczne domyślne ustawienia. Przeglądaj zmiany przed każdą drobną lub większą aktualizacją.

Oto kilka przykładów:

  • W wersji 4.0 ustawienie Encrypt zostało zmienione tak, aby domyślnie miało wartość true.
  • Wersja 5.0 wprowadziła SqlConnectionEncryptOption i Encrypt=Strict dla TDS 8.0.
  • Wersja 5.2 wprowadziła SqlBatch dla obsługiwanych nowoczesnych platform docelowych .NET.
  • Wersja 7.0 przeniosła uwierzytelnianie Microsoft Entra udostępniane przez sterownik do Microsoft.Data.SqlClient.Extensions.Azure.

Zobacz Co nowego w produkcie Microsoft.Data.SqlClient, aby uzyskać linki do informacji o wydaniu oraz podsumowanie aktualizacji.

Niektóre funkcje wykorzystują typy poza główną przestrzenią nazw lub opcjonalne pakiety.

Przestrzeń nazw lub pakiet Purpose
Microsoft.Data.SqlClient.Server Implementacje SqlClient elementów SqlDataRecord i SqlMetaData.
Microsoft.Data.SqlTypes Typy specyficzne dla SqlClient, takie jak SqlFileStream, SqlJson, oraz SqlVector<T>.
Microsoft.Data.SqlClient.Diagnostics Silnie typowane ładunki zdarzeń diagnostycznych.
Microsoft.Data.SqlClient.Extensions.Azure Uwierzytelnianie Microsoft Entra zapewniane przez sterownik dla wersji 7.0 i nowszych.
Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider Integracja z usługą Azure Key Vault dla funkcji Always Encrypted.

Nie wyciągaj wniosków o wymaganiach pakietu tylko na podstawie przestrzeni nazw. Podążaj za artykułem o funkcjach oraz informacjami o zależności pakietu NuGet dla wersji sterownika, której używasz.