В настоящее время в нашем проекте мы используем Entity Framework и LINQ.Мы хотим создать функцию поиска, в которой клиент заполняет различные фильтры, но ему это не нужно.
Чтобы выполнить этот «динамический» запрос в LINQ, мы подумали об использовании оператора Like, который ищет либо полеили "%", чтобы получить все, если пользователь не заполнил это поле.
Шутка была о нас, когда мы обнаружили, что она не поддерживает Like.После некоторых поисков мы прочитали несколько ответов, в которых рекомендуется использовать StartsWith, но для нас это бесполезно.
Единственное решение, использующее что-то вроде:
ObjectQuery<Contact> contacts = db.Contacts;
if (pattern != "")
{
contacts = contacts.Where(“it.Name LIKE @pattern”);
contacts.Parameters.Add(new ObjectParameter(“pattern”, pattern);
}
Однако нам бы хотелосьпридерживаться только linq.
Удачного кодирования!