我正在尝试从EF 6调用存储的proc。SearchField2Param是基于nvarchar的列,其大小为20。此参数将进入表列下的SP,该列已使用“始终加密”功能进行了加密。
异常:-操作数类型冲突:nvarchar与nvarchar(20)不兼容,加密方式为(encryption_type ='DETERMINISTIC')
某种程度上,我有一种感觉,即sqlparameter无法使nvarchar(20)大小的列与目标db列匹配。
SeachField1Param = new SqlParameter("SearchField1", SearchField1);
SearchField2Param = new SqlParameter("SearchField2",System.Data.SqlDbType.NVarChar, 20)
{
Value = SearchField2
};
try
{
return this.ExecuteProcedure("dbo.InsertSearch", SeachField1Param, SearchField2Param);
}
public static int ExecuteProcedure(this DbContext context, string procedureName, params SqlParameter[] parameters)
{
string sql = SqlCommandHelper.GetSqlCommandString(procedureName, parameters);
return context.Database.ExecuteSqlCommand(sql, parameters);
}