首页 > 解决方案 > servicestack sql server 关键字不支持 ormlite

问题描述

我在 api c# 项目中使用 servicestack 并引用了

nuget 包。

我可以按预期连接到 sql server。

我们现在尝试在我们的一些 sql server 表列中实现 Always Encrypted 列。我们将以下内容附加到我们的数据库连接字符串中:

";列加密设置=启用"

运行此行时是 c#:

var id = await Db.InsertAsync(customer, selectIdentity: true);

现在引发了一个异常:

"Keyword not supported: 'column encryption setting'."

这可能是因为 Ormlite 包中不支持 Always Encrypted。有没有办法用 ServiceStack 实现类似的东西?

标签: azure-sql-databaseservicestackormlite-servicestack

解决方案


这不是 OrmLite 错误,它来自 System.Data.SqlClient ADO.NET 提供程序。

您需要使用ServiceStack.OrmLite.SqlServer.Data包,它确实引用了Microsoft.Data.SqlClient包,如.NET Core 报告的问题所建议的那样。

在此处输入图像描述

反编译的源代码显示我们确实引用了Microsoft.Data.SqlClient命名空间:

在此处输入图像描述

如果这不起作用,请查看是否可以直接打开与Microsoft.Data.SqlClient SqlConnection 类的连接,例如:

var conn = new SqlConnection(connectionString);
conn.Open();

推荐阅读