EF Хранимый процесс со столбцом на основе шифрования генерирует исключение столкновения операнда - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь вызвать сохраненный процесс из 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);
        }
...