Я пытаюсь использовать динамический linq для получения подмножества людей из базы данных с использованием Entity Framework (EF). При использовании операции contains у меня возникает проблема. Вот сущность для людей таблицы:Ошибка при запросе на подстроку с использованием динамического Linq
public class Person
{
public string Id { get; set; }
public string Name { get; set; }
public string Address { get; set; }
public string City { get; set; }
public string State { get; set; }
public string ZipCode { get; set; }
}
Вот запрос, который успешно работает.
var people = personContext
.People
.OrderBy("id asc")
.Skip(0)
.Take(5)
.ToList();
Обратите внимание, что я использую динамический linq в методе OrderBy. Однако, когда я пытаюсь применить фильтрацию , я получаю исключение.
var people = personContext
.People
.Where("id.Contains(15)")
.OrderBy("id asc")
.Skip(0)
.Take(5)
.ToList();
То, что я хотел бы получить обратно подмножество людей с идентификаторами, которые содержат подстроку «15», например:
"015", "115", "151", "152", etc.
Когда я выполнить код, я получаю следующее ошибка.
System.Linq.Dynamic.ParseException was unhandled by user code
Message=No applicable method 'Contains' exists in type 'String'
Каков синтаксис определения, содержит ли поле ИД строку «15»?
Мне не хватало цитат! Поскольку я сравниваю строки, нужны цитаты. Хорошо поймал! – Halcyon