Есть метод в контроллере, который фильтрует содержимое.
[HttpPost]
public ActionResult Search (string[] jsonString)
{
IQueryable <UploadedFile> res = Context.UploadedFiles;
if (!string.IsNullOrEmpty(jsonString[0]))
{
res = res.Where(x => x.FileTitle.Contains(jsonString[0]));
}
return View("UploadFilesView", res.ToList());
}
В метод прилетает json строка, далее фильтруется и отдается во View. В коде выше метод возвращается 500 (Internal Server Error).
Если заменить строку
res = res.Where(x => x.FileTitle.Contains(jsonString[0]));
на
var buffer = jsonString[0];
res = res.Where(x => x.FileTitle.Contains(buffer));
то все работает. Подскажите, почему так?
На приведенном Вами скриншоте есть сообщение об ошибке, гласящее о том, что обращение по индексу не поддерживается в Linq to Entity. Связано это, думаю с тем, что ExpressionBuilder не знает, как перевести его в язык СУБД, которую Вы используете (да, важно не только то, что Вы используете EF, но и то, какой провайдер).
Таким образом, для решения проблемы Вам необходимо поместить нужную Вам строку в локальную переменную.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости