日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

微软推出 Microsoft.Data.SqlClient,替代 System.Data.SqlClient

發(fā)布時間:2023/12/4 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微软推出 Microsoft.Data.SqlClient,替代 System.Data.SqlClient 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

背景

在 .NET 創(chuàng)建之初,System.Data 框架是一個重要的組件。它為創(chuàng)建 .NET 數(shù)據(jù)庫驅(qū)動程序提供了一種方式,類似 Visual Basic 的 ActiveX Data Objects。雖然 API 不一樣,但重用了它的名稱,所以才有了 ADO .NET 這個綽號。

ADO 和 ADO .NET(即 System.Data)之間的一個關(guān)鍵區(qū)別是對象模型。在 ADO 中,通常只需要使用 Connection 、 Command 和 Recordset 對象,OleDB/ODBC 驅(qū)動程序隱藏掉了其他東西。這提高了代碼復(fù)用率,但開發(fā)人員難以將一些數(shù)據(jù)庫特性暴露出來。

在 ADO .NET 中,你也可以使用 OleDB/ODBC,但在大多數(shù)情況下會使用一系列特定于數(shù)據(jù)庫的類。這些類派生自 DBConnection、DBCommand 和 DBDataReader,可以保持原來的代碼復(fù)用性。但因為它們是強(qiáng)命名類型,需要顯式地作為 .NET 庫的一部分。

可能是為了簡化開發(fā),SQL Server、OleDB 和 ODBC 驅(qū)動程序同時作為 System.Data 框架的一部分。這種方式在當(dāng)時是可以接受的,但卻給現(xiàn)在的 SQL Server 開發(fā)周期帶來了問題。

實(shí)際上,SQL Server 的發(fā)布周期已經(jīng)從 3 年到 5 年變成了幾乎每年一次。發(fā)布的新版本通常需要更新 .NET 驅(qū)動程序,如果它被綁定到 .NET 標(biāo)準(zhǔn)發(fā)布周期中,這就不可能及時發(fā)布。

第一步是拆分 System.Data 庫。.NET Core 完成了這一步,為每個數(shù)據(jù)庫驅(qū)動程序提供了單獨(dú)的庫。下一步是將 SQL Server 驅(qū)動程序與 .NET Core/Standard 完全分離。為此,他們創(chuàng)建了 Microsoft.Data.SqlClient。

升級到 Microsoft.Data.SqlClient

對于大多數(shù)開發(fā)人員來說,使用 Microsoft.Data.SqlClient 將會變得非常簡單,只需要修改每個類頂部的 using 語句即可。另外,它使用了相同的類名和 API,并提供了大致相同的特性。

對于輕量級 ORM,如 Dapper 或 RepoDB,不需要做進(jìn)一步的改動。

如果開發(fā)人員使用 ORM 來管理連接(例如 EF、NHibernate),就需要等待 ORM 升級。

比較麻煩的是那些混合 ORM。如果一個 ORM 使用了 Microsoft.Data.SqlClient,而另一個使用了 System.Data.SqlClient,就不能同時正常運(yùn)行。這在使用共享 SqlTransaction 對象時尤為重要。

可用性

1.0 版 Microsoft.Data.SqlClient 可用于這些平臺:

  • .NET Framework 4.6+

  • .NET Core 2.1+

  • .NET Standard 2.0+

已知問題

并不是每個人都需要馬上升級。文檔中指出了這些已知問題:

  • 用戶數(shù)據(jù)類型(UDT)可能無法與 Microsoft.Data.SqlClient 一起使用。

  • Azure Key Vault 和 Microsoft.Data.SqlClient 沒有密鑰存儲。

  • Microsoft.Data.SqlClient 不支持安全飛地的 Always Encrypted。

  • 只有 .NET Framework 和 .NET Core 支持 Always Encrypted, .NET Standard 不支持,因為 .NET Standard 缺少某些加密依賴項。

總結(jié)

以上是生活随笔為你收集整理的微软推出 Microsoft.Data.SqlClient,替代 System.Data.SqlClient的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。