You need to enable JavaScript to run this app. .NET Core 2.2使用SQL Always Encrypted提示column encryption setting不支持
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 2.2使用SQL Always Encrypted提示column encryption setting不支持

问题解答

支持性说明

.NET Core 2.2 原生自带的System.Data.SqlClient驱动不支持SQL Always Encrypted功能,该特性需要依赖Microsoft.Data.SqlClient驱动实现。

报错原因

从错误堆栈可判断,SeedData阶段执行时调用的仍然是System.Data.SqlClient命名空间下的类,你之前安装Microsoft.Data.SqlClient的修复仅覆盖了迁移场景,没有全局替换EF Core 2.2默认绑定的旧驱动。

解决方案

  • 安装和.NET Core 2.2兼容的Microsoft.Data.SqlClient版本,推荐使用1.1.4版本,更高版本不再支持.NET Core 2.2运行时。
  • 修改Startup.cs中ConfigureServices方法里的DbContext注册逻辑,强制EF Core使用新驱动:不要直接传入连接字符串,改为传入已经构造好的Microsoft.Data.SqlClient.SqlConnection实例,示例代码如下:
services.AddDbContext<SenSightsContext>(options =>
    options.UseSqlServer(
        new Microsoft.Data.SqlClient.SqlConnection(Configuration.GetConnectionString("DefaultConnection")),
        sqlOptions => sqlOptions.MigrationsAssembly(typeof(SenSightsContext).Assembly.FullName)
    )
);
  • 检查所有数据库相关配置,确保没有其他业务代码直接使用System.Data.SqlClient构造数据库连接,同时确认连接字符串中Column Encryption Setting=Enabled参数拼写正确。

内容的提问来源于stack exchange,提问作者Ammar Ahmed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 19:27:07