Задать вопрос
aszhitarev
@aszhitarev
йей!

Как собрать запрос из частей?

Доброго!
Можно ли собрать запрос к БД из частей, которые будут формироваться исходя из отмеченных чекбоксов?
К примеру, если отмечен чекбокс "дата", то добавляем условие на дату.
  • Вопрос задан
  • 240 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Учебный центр IBS
    SDP-030_PRG Продвинутая разработка в Microsoft .NET
    1 неделя
    Далее
  • Ulearn.me
    Проектирование на языке C#
    1 неделя
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 2
    1 неделя
    Далее
Пригласить эксперта
Ответы на вопрос 2
@d-stream
Готовые решения - не подаю, но...
Можно, но это сложный и извилистый путь с кучей разбросанных граблей.

Гораздо более прямой - собирать в виде or связки (флаг не взведен или условие по дате)
Ответ написан
@StrataRozumu
.NET C# Developer
Создаешь свой класс, который и генерирует запрос по аналогии с паттерном Builder.
И на каждом этапе передаешь предыдущий сформированный IQueriable при необходимости.

class QueryBuilder
    {
        private IQueryable m_IQueryable;

        //Создаем запрос в конструкторе
        public QueryBuilder()
        {
            m_IQueryable = (from i in table select i);
        }
        
        //Добавляем условия
        public void AddDate(DateTime timestamp)
        {
            m_IQueryable = m_IQueryable.Where(x => x.Timestamp == timestamp);
        }

        //Возвращает сформированый запрос
        public IQueryable GetQuery()
        {
            return m_IQueryable;
        }
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы