架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2887|回复: 0

[交流] 【转】微软推出 Microsoft.Data.SqlClient 替代 System.Data.SqlClient

[复制链接]
发表于 2021-12-27 22:21:14 | 显示全部楼层 |阅读模式
背景

在 .NET 创建之初,System.Data 框架是一个重要的组件。它为创建 .NET 数据库驱动程序提供了一种方式,类似 Visual Basic 的 ActiveX Data Objects。虽然 API 不一样,但重用了它的名称,所以才有了 ADO .NET 这个绰号。

ADO 和 ADO .NET(即 System.Data)之间的一个关键区别是对象模型。在 ADO 中,通常只需要使用 Connection 、 Command 和 Recordset 对象,OleDB/ODBC 驱动程序隐藏掉了其他东西。这提高了代码复用率,但开发人员难以将一些数据库特性暴露出来。

在 ADO .NET 中,你也可以使用 OleDB/ODBC,但在大多数情况下会使用一系列特定于数据库的类。这些类派生自 DBConnection、DBCommand 和 DBDataReader,可以保持原来的代码复用性。但因为它们是强命名类型,需要显式地作为 .NET 库的一部分。

可能是为了简化开发,SQL Server、OleDB 和 ODBC 驱动程序同时作为 System.Data 框架的一部分。这种方式在当时是可以接受的,但却给现在的 SQL Server 开发周期带来了问题。

实际上,SQL Server 的发布周期已经从 3 年到 5 年变成了几乎每年一次。发布的新版本通常需要更新 .NET 驱动程序,如果它被绑定到 .NET 标准发布周期中,这就不可能及时发布。

第一步是拆分 System.Data 库。.NET Core 完成了这一步,为每个数据库驱动程序提供了单独的库。下一步是将 SQL Server 驱动程序与 .NET Core/Standard 完全分离。为此,他们创建了 Microsoft.Data.SqlClient。

升级到 Microsoft.Data.SqlClient

对于大多数开发人员来说,使用 Microsoft.Data.SqlClient 将会变得非常简单,只需要修改每个类顶部的 using 语句即可。另外,它使用了相同的类名和 API,并提供了大致相同的特性。

对于轻量级 ORM,如 Dapper 或 RepoDB,不需要做进一步的改动。

如果开发人员使用 ORM 来管理连接(例如 EF、NHibernate),就需要等待 ORM 升级。

比较麻烦的是那些混合 ORM。如果一个 ORM 使用了 Microsoft.Data.SqlClient,而另一个使用了 System.Data.SqlClient,就不能同时正常运行。这在使用共享 SqlTransaction 对象时尤为重要。

可用性

1.0 版 Microsoft.Data.SqlClient 可用于这些平台:

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


已知问题

并不是每个人都需要马上升级。文档中指出了这些已知问题:

  • 用户数据类型(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 缺少某些加密依赖项。


原文链接:https://blog.csdn.net/weixin_39777464/article/details/111698467




上一篇:Linux 更新系统时间和时区
下一篇:【实战】ESXI 虚拟机对 Linux 系统磁盘扩容
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-19 08:24

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表