Страницы

Поиск по вопросам

вторник, 23 апреля 2019 г.

LINQ, динамическое формирование запроса в зависимости от количества фильтров поиска

Имею 6 значений по которым необходимо фильтровать данные:
дата с/ф номер с/ф поставщик получатель исполнитель тин компании

На стороне сервера получаю string[] с этими значениями. Если крыжик стоит над полем, то параметр участвует в фильтрации и наоборот. Как сформировать LINQ запрос который бы при отсутствии параметра в string[] не учитывал его в фильтрации данных и наоборот.
var MySelect = from q in MyDB ...???


Ответ

Примерно так:
var q = from row in ... ... select row; // Базовый запрос без фильтров
if (фильтр 1 установлен) q = q.Where(row => условие фильтра 1);
if (фильтр 2 установлен) q = q.Where(row => условие фильтра 2);
if (фильтр 3 установлен) q = q.Where(row => условие фильтра 3);
if (фильтр 4 установлен) q = q.Where(row => условие фильтра 4);
if (фильтр 5 установлен) q = q.Where(row => условие фильтра 5);
if (фильтр 6 установлен) q = q.Where(row => условие фильтра 6);
if (фильтр 7 установлен) q = q.Where(row => условие фильтра 7);

Комментариев нет:

Отправить комментарий