Microsoft.Data.SqlClient 是适用于 SQL Server、Azure SQL 数据库、Azure SQL 托管实例、Azure Synapse Analytics、Microsoft Fabric 中的 SQL 数据库以及 Microsoft Fabric 中的 Warehouse 的受支持的 .NET 数据提供程序。 驱动程序作为 NuGet 包发布,独立于 .NET 运行时。
选择版本
对于生产应用,请使用受支持的正式发布版(GA)。
| 发布线 | 支持级别 | 在以下情况下选择它 |
|---|---|---|
| 7.0 | 标准期限支持(STS) | 你需要当前的驱动功能,并且可以按常规发布节奏更新。 |
| 6.1 | 长期支持 (LTS) | 你更喜欢更长的支持期,不需要7.0引入的功能。 |
有关当前补丁版本、支持日期、目标框架和数据库兼容性,请参见 SqlClient 驱动支持生命周期。
安装核心包
从包含你项目文件的目录执行以下命令:
dotnet add package Microsoft.Data.SqlClient
该命令选择与项目兼容的最新稳定版本。 要锁定版本以实现可重现构建,请指定版本:
dotnet add package Microsoft.Data.SqlClient --version <version>
恢复依赖并构建项目:
dotnet restore
dotnet build
导入驱动命名空间,用C#语言:
using Microsoft.Data.SqlClient;
对于新应用,不要引用旧的 System.Data.SqlClient 软件包或命名空间。 要更新现有应用程序,请参见从 System.Data.SqlClient 迁移到 Microsoft。Data.SqlClient。
使用 Visual Studio 安装
- 在 解决方案资源管理器 中,右键点击项目,选择管理 NuGet 包。
- 在 浏览标签 中,搜索
Microsoft.Data.SqlClient。 - 选择Microsoft拥有的软件包。
- 选择一个支持的稳定版本,然后选择 安装。
欲了解更多信息,请参见 Visual Studio 中的安装和管理包。
添加可选套餐
只有当你的应用使用相关功能时,才安装可选包。
| Package | 在此时添加它 |
|---|---|
Microsoft.Data.SqlClient.Extensions.Azure |
Microsoft。Data.SqlClient 7.0及更高版本使用驱动程序提供的Microsoft Entra认证模式,如Active Directory Default、、Active Directory Interactive或Active Directory Managed Identity。 |
Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider |
Always Encrypted 将列主密钥存储在 Azure 密钥保管库 中。 |
对于使用 SqlClient 7.0 或更高版本进行 Microsoft Entra 身份验证的情况,请运行:
dotnet add package Microsoft.Data.SqlClient.Extensions.Azure --version <same-version-as-Microsoft.Data.SqlClient>
7.0 核心包不再包含 Azure Identity 依赖。 从7.0.2版本开始,核心驱动和配套包使用对齐版本。 引用同一版本的 Microsoft.Data.SqlClient 和 Microsoft.Data.SqlClient.Extensions.Azure。 不使用驱动程序提供的 Microsoft Entra 认证的应用不需要 Azure 扩展包。 关于认证设置,请参见 Microsoft Entra 认证。
更新驱动程序
更新之前:
阅读 Microsoft.Data.SqlClient 的新增功能以及此次更新所跨越的每个版本的上游发行说明。
请检查应用程序的直接包引用和传递依赖包引用。
dotnet list package --include-transitive更新包引用。
dotnet add package Microsoft.Data.SqlClient --version <version>恢复、构建并运行应用程序测试。
测试连接建立、认证、证书验证、连接池、数据类型转换、事务以及针对每个支持数据库目标的重试行为。
主要和补丁发布可能需要对应用程序进行更改。 例如,4.0 版本默认启用加密,5.0 版本从 SqlConnectionStringBuilder.Encryptbool 变SqlConnectionEncryptOption为 ,7.0 版本将驱动程序提供的 Microsoft Entra 认证移入独立包。
从 7.0.2 版本开始,Microsoft.Data.SqlClient.Extensions.Azure、Microsoft.Data.SqlClient.Extensions.Abstractions 和 Microsoft.Data.SqlClient.Internal.Logging 的程序集版本已从 7.0.0.0 更改为 1.0.0.0。 .NET Framework 应用程序必须基于统一版本的包重新生成,或添加绑定重定向。 当前 .NET 上的应用程序不会受到这次装配身份更改的影响。
理解目标框架
Microsoft。Data.SqlClient 7.0 支持以下应用:
- .NET Framework 4.6.2 或更高版本,适用于 Windows。
- 支持Windows、Linux和macOS版本的.NET 8或更高版本。
NuGet 包还包含一个适用于库的 .NET Standard 2.0 兼容性资产。 可执行应用程序必须以受支持的 .NET 或 .NET Framework 运行时为目标。 库的 .NET Standard 目标并不意味着所有消耗型运行时都被支持。
该包通过 NuGet 恢复其托管依赖和本地依赖。 不要在应用程序之间复制单个驱动程序组件或本地SQL网络接口(SNI)库。
准备部署
发布时,使用与生产中使用的操作系统和架构相同的版本。 对于框架依赖型部署:
dotnet publish --configuration Release针对特定运行时的部署:
dotnet publish --configuration Release --runtime <runtime-identifier>部署完整的发布输出。 不要只选择
Microsoft.Data.SqlClient.dll。确认目标是否具备所需的 .NET 运行时,除非你发布一个自包含的应用程序。
在目标操作系统和架构上测试已发布的输出。
测试生产中使用的所有认证模式。 集成认证、Kerberos、证书、管理身份和Azure 密钥保管库访问取决于部署环境。
扫描已解决的依赖图,寻找已知漏洞,并在有修复时更新支持的包行。
不支持全球化不变模式。 有关当前平台资格认证,请参见 支持的操作系统。
离线软件包安装
从 NuGet.org 下载包及其依赖,复制到内部包源,然后从该源恢复。 为了实现可复现的离线构建,请固定软件包版本并保留完整的依赖项集合。