Я пытаюсь вызвать сохраненный процесс из EF 6. SearchField2Param - это столбец на основе nvarchar с размером 20. И этот параметр входит в SP под столбцом таблицы, который зашифрован с помощью функции «всегда шифровать».
Исключение: - Столкновение с типом операнда: nvarchar несовместим с nvarchar (20) зашифровано с помощью (encryption_type = 'DETERMINISTIC')
Почему-то у меня такое чувство, что sqlparameter не может создать столбец с размером nvarchar (20), чтобы соответствовать целевому столбцу БД.
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);
}