Microsoft. Data.SqlClient isim alanı ve uyumluluğu

İsim Microsoft.Data.SqlClient alanı, SQL Server uyumlu veritabanları için desteklenen .NET veri sağlayıcısını içerir. System.Data.SqlClient öğesinin bir çatallanması olarak başladı ve .NET çalışma zamanından bağımsız olarak yeni SQL Server özellikleri sunarken alışıldık ADO.NET programlama modelini korur.

Yeni geliştirme için kullanın Microsoft.Data.SqlClient .

Isim alanını kur ve içe aktarma

NuGet paketini ekleyin:

dotnet add package Microsoft.Data.SqlClient

İsim alanını içe aktarın:

using Microsoft.Data.SqlClient;

Çoğu uygulama , SqlCommand, SqlParameter, SqlDataReader, ve SqlTransaction. SqlConnectionkullanır. Tam açık yüzey için Microsoft. Data.SqlClient API referansına bakınız.

ADO.NET ile ilişkisi

Microsoft.Data.SqlClient, System.Data.Common içindeki sağlayıcıdan bağımsız türleri uygular; bunlara DbDataReader, DbConnection, DbCommand ve DbTransaction dahildir. Ayrıca SQL Server'a özgü API'ler de sunar:

  • SqlBulkCopy
  • SqlBatch
  • SqlConnectionStringBuilder
  • SqlConfigurableRetryFactory
  • SqlDependency
  • SQL Server'a özgü kimlik doğrulama, şifreleme ve veri tipi desteği

Sağlayıcıdan bağımsız veya SqlClient'a özgü API'leri seçmeye yönelik yönergeler için Microsoft.Data.SqlClient ile ADO.NET mimarisi bölümüne bakın.

System.Data.SqlClient ile ilişki

System.Data.SqlClient.NET Framework ve önceki .NET sürümleriyle birlikte gelen eski sağlayıcıdır. Microsoft.Data.SqlClient Birçok aynı tür ismini kullanır, ancak farklı paketler, isim alanları, varsayılanlar, özellikler ve destek politikaları vardır.

Yeni uygulama kodunda her iki sağlayıcıya da referans vermeyin. İki paketten aynı isimli türler birbirinin yerine geçemez. Örneğin, bir System.Data.SqlClient.SqlConnection, bir Microsoft.Data.SqlClient.SqlConnection gerektiğinde verilemez.

Göç genellikle paketi Microsoft.Data.SqlClient eklemek ve isim alanı referanslarını değiştirerek başlar, ancak bağlantı şifrelemesi, parametreler, yapılandırma, geçişli bağımlılıklar ve çalışma zamanı davranışını da gözden geçirmeniz gerekir. Dağıtımdan önce System.Data.SqlClient'tan Microsoft.Data.SqlClient'e Geçiş başlıklı yönergeleri izleyin.

Sürüm uyumluluğu

Sürücü paketi sürümü, uygulamanın .NET sürümü ve veritabanı motoru sürümünden bağımsızdır. Üçünü de kontrol edin:

Component Doğrulanması gerekenler
Microsoft.Data.SqlClient Sürüm serisi desteklenir ve uygulamanızın kullandığı özellikleri içerir.
.NET veya .NET Framework Uygulama, o sürücü sürümüyle desteklenen bir çalışma zamanını hedefliyor.
SQL Server uyumlu veritabanı Sürücü sürümü veritabanı sürümünü destekler ve sunucu ise TDS 8.0 gibi istenen protokol özelliklerini destekler.

Mevcut matrisler için SqlClient sürücü destek yaşam döngüsü bkz.

Sürüme özgü değişiklikler

Sürücü sürümleri API'ler ekleyebilir, isteğe bağlı bağımlılıkları taşıyabilir ve güvenli varsayılanları değiştirebilir. Her küçük veya büyük güncellemeden önce değişiklikleri gözden geçirin.

Örnekler şunları içerir:

  • Sürüm 4.0, Encrypt için varsayılanı true olarak değiştirdi.
  • Sürüm 5.0, TDS 8.0 için SqlConnectionEncryptOption ve Encrypt=Strict tanıttı.
  • 5.2 sürümü, desteklenen modern .NET hedeflerinde SqlBatch kullanıma sundu.
  • Sürüm 7.0, sürücü tarafından sağlanan Microsoft Entra kimlik doğrulamasını Microsoft.Data.SqlClient.Extensions.Azure içine taşıdı.

Sürüm notu bağlantıları ve yükseltme özeti için Microsoft.Data.SqlClient'teki yenilikler bölümüne bakın.

Bazı özellikler ana isim alanı dışındaki türler veya isteğe bağlı paketler kullanır.

İsim alanı veya paket Purpose
Microsoft.Data.SqlClient.Server SqlDataRecord ve SqlMetaData’in SqlClient uygulamaları.
Microsoft.Data.SqlTypes SqlClient'e özgü türler, örneğin SqlFileStream, SqlJson, ve SqlVector<T>.
Microsoft.Data.SqlClient.Diagnostics Kesin türlenmiş tanılama olay yükleri.
Microsoft.Data.SqlClient.Extensions.Azure Sürüm 7.0 ve üzeri için sürücü tarafından sağlanan Microsoft Entra kimlik doğrulaması.
Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider Always Encrypted için Azure Key Vault tümleştirmesi.

Paket gereksinimlerini sadece bir isim alanından çıkarmayın. Kullandığınız sürücü sürümü için özellik makalesini ve NuGet paket bağımlılık bilgilerini takip edin.