Microsoft. Data.SqlClient-namnrymd och kompatibilitet

Namnrymden Microsoft.Data.SqlClient innehåller den stödda .NET-dataleverantören för SQL Server-kompatibla databaser. Det började som en förgrening av System.Data.SqlClient och behåller den välkända ADONET-programmeringsmodellen samtidigt som nya SQL Server-funktioner levereras oberoende av .NET-runtime.

Använd Microsoft.Data.SqlClient för ny utveckling.

Installera och importera namnrymden

Lägg till NuGet-paketet:

dotnet add package Microsoft.Data.SqlClient

Importera namnrymden:

using Microsoft.Data.SqlClient;

De flesta applikationer använder SqlConnection, SqlCommand, SqlParameter, SqlDataReader, och SqlTransaction. För hela den offentliga ytan, se Microsoft. Data.SqlClient API-referensen.

Förhållande till ADO.NET

Microsoft. Data.SqlClient implementerar leverantörsoberoende typer från System.Data.Common, inklusive DbConnection, DbCommand, , DbDataReaderoch DbTransaction. Den tillhandahåller också SQL Server-specifika API:er såsom:

  • SqlBulkCopy
  • SqlBatch
  • SqlConnectionStringBuilder
  • SqlConfigurableRetryFactory
  • SqlDependency
  • SQL Server-specifik autentisering, kryptering och stöd för datatyper

För vägledning om att välja leverantörsoberoende eller SqlClient-specifika API:er, se ADO.NET-arkitektur med Microsoft. Data.SqlClient.

Förhållandet till System.Data.SqlClient

System.Data.SqlClientär den äldre leverantören som levereras med .NET Framework och tidigare .NET-versioner. Microsoft.Data.SqlClient använder många av samma typnamn, men har olika paket, namnrymder, standardinställningar, funktioner och supportpolicys.

Referera inte till båda leverantörerna i den nya applikationskoden. Typer med samma namn från de två paketen är inte utbytbara. En System.Data.SqlClient.SqlConnection kan till exempel inte skickas vidare när ett Microsoft.Data.SqlClient.SqlConnection krävs.

Migreringen börjar vanligtvis med att lägga till paketet Microsoft.Data.SqlClient och ändra namnrymdsreferenser, men du måste också granska anslutningskryptering, parametrar, konfiguration, transitiva beroenden och körtidsbeteende. Följ Migrera från System.Data.SqlClient till Microsoft.Data.SqlClient innan du distribuerar.

Versionskompatibilitet

Drivrutinspaketversionen är oberoende av applikationens .NET-version och databasmotorversionen. Kolla alla tre:

Component Vad du ska verifiera
Microsoft.Data.SqlClient Release-linjen stöds och innehåller de funktioner som din applikation använder.
.NET- eller .NET-ramverket Applikationen riktar sig mot en körtid som stöds av den drivrutinsreleasen.
SQL Server-kompatibel databas Drivrutinsversionen stöder databasversionen och servern stöder alla önskade protokollfunktioner, såsom TDS 8.0.

För nuvarande matriser, se SqlClient-drivrutinsstödets livscykel.

Versionsspecifika ändringar

Drivrutinssläpp kan lägga till API:er, flytta valfria beroenden och ändra säkra standardinställningar. Gå igenom ändringar innan varje mindre eller större uppdatering.

Exempel inkluderar:

  • Version 4.0 ändrades Encrypt till standard till true.
  • Version 5.0 introducerade SqlConnectionEncryptOption och Encrypt=Strict för TDS 8.0.
  • Version 5.2 introducerade SqlBatch på moderna .NET-målplattformar som stöds.
  • Version 7.0 flyttade drivrutinstillhandahållen Microsoft Entra-autentisering till Microsoft.Data.SqlClient.Extensions.Azure.

Se vad som är nytt i Microsoft. Data.SqlClient för länkar till releaseanteckningar och en uppdateringssammanfattning.

Vissa funktioner använder typer utanför huvudnamnrymden eller valfria paket.

Namnrymd eller paket Purpose
Microsoft.Data.SqlClient.Server SQLClient-implementationer av SqlDataRecord och SqlMetaData.
Microsoft.Data.SqlTypes SQLClient-specifika typer såsom SqlFileStream, SqlJson, och SqlVector<T>.
Microsoft.Data.SqlClient.Diagnostics Starkt typade nyttolaster för diagnostikhändelser.
Microsoft.Data.SqlClient.Extensions.Azure Drivrutinsbaserad Microsoft Entra-autentisering för version 7.0 och senare.
Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider Azure Key Vault-integration för Always Encrypted.

Dra inte slutsatser om paketkrav enbart från ett namnrymd. Följ artikeln om funktionen och informationen om NuGet-paketberoenden för den drivrutinsversion du använder.