Всегда зашифрованный операнд Clash In Query
Недавно я начал использовать Always Encrypted with SQL Server 2016 для шифрования конфиденциальной информации.
По большей части все было гладко в отношении плавного перехода.
Одна вещь возникла, хотя, следующая ошибка -
Столкновение с типом операнда: nvarchar(255), зашифрованный с помощью (encryption_type = 'RANDOMIZED', encryption_algorithm_name = 'AEAD_AES_256_CBC_HMAC_SHA_256', column_encryption_key_name = 'CEK_AutoK2', столбец_объявления_объявления_объекта_объявления_объявления_объявления_объявления_объявления_объявления_объявления_объявления_объявления_объявления_объявления_объявления_объявления_объявления_объявления_объявления_объявления_объявления_приложения_объявления_объявления_объявления_объявления_объявления_объявления_объявления_объявления_объявления_объявления_объявления_объявления_объявления_области_имя_обозначения_обозначения_объявления)
Метод, который вызывает это исключение, следующий:
public ActionResult GetStaffList(string term)
{
var staffs = from e in db.Staffs
where e.FirstName.Contains(term) || e.LastName.Contains(term)
&& e.EmploymentStatus == "Active"
select new
{
label = e.FirstName + " " + e.LastName,
id = e.Id
};
return (Json(staffs, JsonRequestBehavior.AllowGet));
}
Но, если я изменю метод, к этому
public ActionResult GetStaffList(string term)
{
var staffSearch= db.Staffs
.ToList()
.Where(e => e.FirstName.Contains(term) || e.LastName.Contains(term))
.Where(e => e.EmploymentStatus == "Active");
var staffs = from e in staffSearch
select new
{
label = e.FirstName + " " + e.LastName,
id = e.Id
};
return (Json(staffs, JsonRequestBehavior.AllowGet));
}
Это не выдает ошибку.
В любом случае можно ли объединить две переменные запроса в одну переменную, убедившись, что данные возвращаются в виде JSON со следующим блоком:
select new
{
label = e.FirstName + " " + e.LastName,
id = e.Id
}
Кроме того, я не могу понять, что при запросе "from e....." он выдает ошибку, а при запросе "db.Staff ..." - нет.