Microsoft. Jmenný prostor Data.SqlClient a kompatibilita

Jmenný Microsoft.Data.SqlClient prostor obsahuje podporovaného poskytovatele dat .NET pro databáze kompatibilní se SQL Server. Začal jako fork System.Data.SqlClient a zachovává známý programovací model ADO.NET, přičemž nové funkce SQL Server byly dodávány nezávisle na běhu .NET.

Použijte Microsoft.Data.SqlClient pro nový vývoj.

Instalace a import jmenného prostoru

Přidejte balíček NuGet:

dotnet add package Microsoft.Data.SqlClient

Importujte jmenný prostor:

using Microsoft.Data.SqlClient;

Většina aplikací používá SqlConnection, SqlCommand, SqlParameter, SqlDataReader, a .SqlTransaction Pro kompletní veřejnou plochu viz Microsoft. Data.SqlClient API reference.

Vztah k ADO.NET

Microsoft. Data.SqlClient implementuje typy nezávislé na poskytovateli z System.Data.Common, včetně DbConnection, DbCommand, DbDataReader, a DbTransaction. Poskytuje také API specifická pro SQL Server, například:

  • SqlBulkCopy
  • SqlBatch
  • SqlConnectionStringBuilder
  • SqlConfigurableRetryFactory
  • SqlDependency
  • Podpora autentizace, šifrování a datových typů specifických pro SQL Server

Pro rady při výběru API nezávislých na poskytovateli nebo specifických pro SqlClient viz architektura ADO.NET s Microsoft. Data.SqlClient.

Vztah k System.Data.SqlClient

System.Data.SqlClientje starší poskytovatel, který je dodáván s .NET Framework a dřívějšími vydáními .NET. Microsoft.Data.SqlClient používá mnoho stejných typových názvů, ale má odlišné balíčky, jmenné prostory, výchozí nastavení, funkce a podpůrné politiky.

Neodkazujte na oba poskytovatele v novém aplikačním kódu. Typy se stejným názvem z obou balíčků nejsou zaměnitelné. Například a System.Data.SqlClient.SqlConnection, nelze předat tam, kde je vyžadováno a Microsoft.Data.SqlClient.SqlConnection .

Migrace obvykle začíná přidáním balíčku Microsoft.Data.SqlClient a změnou odkazů ve jmenném prostoru, ale musíte také zkontrolovat šifrování spojení, parametry, konfiguraci, tranzitivní závislosti a chování za běhu. Sledujte migraci ze System.Data.SqlClient na Microsoft. Data.SqlClient před nasazením.

Kompatibilita verzí

Verze balíčku ovladačů je nezávislá na .NET verzi aplikace a verzi databázového enginu. Zkontrolujte všechny tři:

Component Co ověřit
Microsoft.Data.SqlClient Verze vydání je podporována a obsahuje funkce, které vaše aplikace používá.
.NET nebo .NET Framework Aplikace cílí na runtime podporované tímto vydáním ovladače.
Databáze kompatibilní se SQL Server Verze ovladače podporuje databázovou verzi a server podporuje jakoukoli požadovanou protokolovou funkci, například TDS 8.0.

Pro aktuální matice viz životní cyklus podpory ovladačů SqlClient.

Změny specifické pro verzi

Verze ovladačů mohou přidávat API, přesouvat volitelné závislosti a měnit bezpečné výchozí nastavení. Před každou menší nebo větší aktualizací si projděte změny.

Mezi příklady patří:

  • Verze 4.0 byla změněna Encrypt na výchozí na .true
  • Byla představena SqlConnectionEncryptOption verze 5.0 a Encrypt=Strict pro TDS 8.0.
  • Verze 5.2 byla představena SqlBatch na podporovaných moderních .NET cílech.
  • Verze 7.0 přesunula ovladačem poskytovanou autentizaci Microsoft Entra do Microsoft.Data.SqlClient.Extensions.Azure.

Podívejte se, co je nového v Microsoft. Data.SqlClient pro odkazy k poznámkám k vydání a shrnutí aktualizace.

Některé funkce používají typy mimo hlavní jmenný prostor nebo volitelné balíčky.

Jmenný prostor nebo balíček Purpose
Microsoft.Data.SqlClient.Server Implementace SqlDataRecord a SqlClient a SqlMetaData.
Microsoft.Data.SqlTypes Typy specifické pro SqlClient, jako SqlFileStreamjsou , SqlJson, a SqlVector<T>.
Microsoft.Data.SqlClient.Diagnostics Silně typované diagnostické události s užitečnými datami.
Microsoft.Data.SqlClient.Extensions.Azure Ovladačem poskytovaná autentizace Microsoft Entra pro verzi 7.0 a novější.
Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider Azure Key Vault integration for Always Encrypted.

Neodvozujte požadavky na balíček jen z jmenného prostoru. Postupujte podle článku o zásadách a informací o závislostech balíčku NuGet pro verzi ovladače, kterou používáte.