Microsoft. Data.SqlClients naamruimte en compatibiliteit

De Microsoft.Data.SqlClient naamruimte bevat de ondersteunde .NET-dataprovider voor SQL Server-compatibele databases. Het begon als een fork van System.Data.SqlClient en behoudt het vertrouwde ADONET-programmeermodel, terwijl nieuwe SQL Server-functies onafhankelijk van de .NET-runtime werden geleverd.

Gebruiken Microsoft.Data.SqlClient voor nieuwe ontwikkeling.

Installeer en importeer de naamruimte

Voeg het NuGet-pakket toe:

dotnet add package Microsoft.Data.SqlClient

Importeer de naamruimte:

using Microsoft.Data.SqlClient;

De meeste applicaties gebruiken SqlConnection, SqlCommand, SqlParameter, , SqlDataReaderen SqlTransaction. Raadpleeg de Microsoft.Data.SqlClient API-referentie voor de volledige openbare API.

Relatie tot ADO.NET

Microsoft. Data.SqlClient implementeert provider-onafhankelijke types uit System.Data.Common, waaronder DbConnection, DbCommand, , DbDataReaderen DbTransaction. Het biedt ook SQL Server-specifieke API's zoals:

  • SqlBulkCopy
  • SqlBatch
  • SqlConnectionStringBuilder
  • SqlConfigurableRetryFactory
  • SqlDependency
  • SQL Server-specifieke authenticatie, encryptie en ondersteuning voor gegevenstypen

Voor advies bij het kiezen van provider-onafhankelijke of SqlClient-specifieke API's, zie ADO.NET-architectuur met Microsoft. Data.SqlClient.

Relatie tot System.Data.SqlClient

System.Data.SqlClientis de oudere provider die wordt geleverd met .NET Framework en eerdere .NET-releases. Microsoft.Data.SqlClient Gebruikt veel van dezelfde typenamen, maar heeft verschillende pakketten, namespaces, standaardinstellingen, functies en ondersteuningsbeleid.

Verwijs niet naar beide aanbieders in de nieuwe applicatiecode. Types met dezelfde naam uit de twee pakketten zijn niet uitwisselbaar. Een System.Data.SqlClient.SqlConnection kan bijvoorbeeld niet worden doorgegeven waar een Microsoft.Data.SqlClient.SqlConnection vereist is.

Migratie begint meestal met het toevoegen van het Microsoft.Data.SqlClient pakket en het wijzigen van namespace-referenties, maar je moet ook de connectie-encryptie, parameters, configuratie, transitieve afhankelijkheden en runtime-gedrag bekijken. Gebruik Migreren van System.Data.SqlClient naar Microsoft.Data.SqlClient voordat je implementeert.

Versiecompatibiliteit

De driverpakketversie is onafhankelijk van de .NET-versie van de applicatie en de database-engineversie. Controleer alle drie:

Onderdeel Wat u moet controleren
Microsoft.Data.SqlClient De release-lijn wordt ondersteund en bevat de functies die je applicatie gebruikt.
.NET of .NET Framework De applicatie richt zich op een runtime die door die driverrelease wordt ondersteund.
SQL Server-compatibele database De driverrelease ondersteunt de databaseversie en de server ondersteunt elke gevraagde protocolfunctie, zoals TDS 8.0.

Voor huidige matrices, zie SqlClient driver support lifecycle.

Versiespecifieke wijzigingen

Driverreleases kunnen API's toevoegen, optionele afhankelijkheden verplaatsen en veilige standaardinstellingen wijzigen. Bekijk wijzigingen vóór elke kleine of grote update.

Enkele voorbeelden:

  • Versie 4.0 veranderde Encrypt naar standaard naar true.
  • Versie 5.0 introduceerde SqlConnectionEncryptOption en Encrypt=Strict voor TDS 8.0.
  • In versie 5.2 werd SqlBatch geïntroduceerd voor ondersteunde moderne .NET-doelplatforms.
  • Versie 7.0 verplaatste door de drivers geleverde Microsoft Entra-authenticatie naar Microsoft.Data.SqlClient.Extensions.Azure.

Bekijk wat er nieuw is bij Microsoft. Data.SqlClient voor links naar release-notities en een upgrade-samenvatting.

Sommige functies gebruiken types buiten de hoofdnaamruimte of optionele pakketten.

Naamruimte of pakket Purpose
Microsoft.Data.SqlClient.Server SqlClient-implementaties van SqlDataRecord en SqlMetaData.
Microsoft.Data.SqlTypes SQLClient-specifieke types zoals SqlFileStream, SqlJson, en SqlVector<T>.
Microsoft.Data.SqlClient.Diagnostics Sterk getypeerde diagnostische gebeurtenisladingen.
Microsoft.Data.SqlClient.Extensions.Azure Door de driver geleverde Microsoft Entra-authenticatie voor versie 7.0 en later.
Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider Azure Key Vault-integratie voor Always Encrypted.

Leid pakketvereisten niet alleen af uit een naamruimte. Raadpleeg het artikel over deze functie en de afhankelijkheidsinformatie van het NuGet-pakket voor de versie van het stuurprogramma die je gebruikt.