Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 6692|Yanıt: 0

[İletişim] Microsoft, System.Data.SqlClient'ın yerine Microsoft.Data.SqlClient dosyasını başlattı

[Bağlantıyı kopyala]
Yayınlandı 27.12.2021 22:21:14 | | |
arka plan

.NET'in ilk günlerinde, System.Data çerçevesi önemli bir bileşendi. Visual Basic'in ActiveX Veri Nesnelerine benzer şekilde .NET veritabanı sürücüleri oluşturmanın bir yolunu sunar. API farklı olsa da, adı tekrar kullanılır, bu yüzden ADO .NET lakabıdır.

ADO ile ADO .NET (yani System.Data) arasındaki temel farklardan biri nesne modelidir. ADO'da genellikle sadece Connection, Command ve Recordset nesnelerini kullanmanız gerekir ve OleDB/ODBC sürücüsü başka bir şeyi gizler. Bu, kodun yeniden kullanımını iyileştirir, ancak geliştiricilerin bazı veritabanı özelliklerini ortaya çıkarması zordur.

ADO .NET'te OleDB/ODBC de kullanabilirsiniz, ancak çoğu durumda veritabanına özgü bir dizi sınıf kullanırsınız. Bu sınıflar, orijinal kodun yeniden kullanılabilirliğini koruyan DBConnection, DBCommand ve DBDataReader'den türetilmiştir. Ancak güçlü isimli türler oldukları için, .NET kütüphanesinin açıkça bir parçası olmaları gerekir.

Muhtemelen geliştirmeyi basitleştirmek için, SQL Server, OleDB ve ODBC sürücüleri System.Data çerçevesinin bir parçasıdır. Bu yaklaşım o dönemde kabul edilebilirdi, ancak mevcut SQL Server geliştirme döngüsünde sorunlar yarattı.

Aslında, SQL Server sürüm döngüleri 3 yıldan 5 yıla kadar değişti ve neredeyse her yıl değişti. Yeni sürümler genellikle .NET sürücüsünün güncellenmesini gerektirir; bu, .NET standart sürüm döngüsüne bağlıysa mümkün değildir.

İlk adım, System.Data kütüphanesini bölmektir. NET Core, her veritabanı sürücüsü için ayrı kütüphaneler sağlayarak bu adımı başarır. Bir sonraki adım, SQL Server sürücüsünü .NET Core/Standard'dan tamamen ayırmaktır. Bunu yapmak için Microsoft.Data.SqlClient oluşturdular.

Upgrade to Microsoft.Data.SqlClient

Çoğu geliştirici için Microsoft.Data.SqlClient kullanmak çok basit olur, sadece her sınıfın üstündeki using ifadesini değiştirmek yeterlidir. Ayrıca, aynı sınıf adlarını ve API'leri kullanıyor ve yaklaşık aynı özellikleri sunuyor.

Dapper veya RepoDB gibi hafif ORM'ler için daha fazla değişiklik gerekmez.

Geliştiriciler bağlantıları yönetmek için ORM'ler kullanıyorsa (örneğin, EF, NHibernate), ORM yükseltmelerini beklemek zorundadırlar.

En sorunlu olanlar ORM'leri karıştıranlardır. Bir ORM Microsoft.Data.SqlClient kullanırken diğeri System.Data.SqlClient kullanırsa, aynı anda çalışmaz. Bu özellikle paylaşılan SqlTransaction nesneleriyle çalışırken önemlidir.

Kullanılabilir -lik

Microsoft.Data.SqlClient'ın 1.0 sürümü şu platformlar için mevcuttur:

  • .NET Framework 4.6+
  • .NET Core 2.1+
  • .NET Standard 2.0+


Bilinen sorunlar

Herkesin hemen yükseltmesi gerekmez. Bu bilinen sorunlar belgelerde belirtilmiştir:

  • Kullanıcı Veri Tipi (UDT), Microsoft.Data.SqlClient ile çalışmayabilir.
  • Azure Key Vault ve Microsoft.Data.SqlClient anahtar deposuna sahip değil.
  • Microsoft.Data.SqlClient, güvenli enklavlar için Always Encrypted programını desteklemez.
  • Sadece .NET Framework ve .NET Core Always Encrypted'i desteklerken, .NET Standard desteklemez, çünkü .NET Standard bazı şifreleme bağımlılıklarından yoksundur.


Orijinal bağlantı:https://blog.csdn.net/weixin_39777464/article/details/111698467




Önceki:Linux, sistem saat ve dilimini güncelliyor
Önümüzdeki:ESXI sanal makinesi, Linux sisteminin disk kapasitesini genişletiyor
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com