1

Is there any way we can use dbCommand and AddInParameter while inserting always encrypted columns into table through .net?

db.AddInParameter(dbCommand, "@SSN", DbType.string, SSN);

4

1 回答 1

0

关于 .NET Framework 数据提供程序如何处理此问题 - 如果基础对象是 SqlParameter,则无需专门执行任何操作。

有关此的更多详细信息: 使用 Always Encrypted 和 .NET Framework 数据提供程序进行开发

SQL Server 的 .NET Framework 数据提供程序会自动检测并加密针对加密列的参数。

我假设您使用的是企业库。查看 AddInParameter 方法 - 它在内部创建一个 DbParameter 和 SqlParamter 从 DbParameter 继承。似乎相同的规则将适用于您的情况。

话虽如此,您可能需要重新考虑使用企业库来支持直接的 ADO.NET、实体框架或像 Dapper 这样的微型 ORM。据我所知,企业库不是一个活跃的项目/正在维护。

编辑

似乎您可以将 SqlParameter 传递给 dbCommand。

示例(未测试)

            DatabaseProviderFactory factory = new DatabaseProviderFactory();
            Database db = factory.CreateDefault();

            var dbCommand = db.GetStoredProcCommand("spINSERT");
            SqlParameter p = new SqlParameter("xxxxxx", "yyyyyy") {SqlDbType = SqlDbType.VarChar};
            dbCommand.Parameters.Add(p);
            db.ExecuteNonQuery(dbCommand);
于 2017-04-10T16:02:04.077 回答