aszhitarev
@aszhitarev
йей!

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

Доброго!
Можно ли собрать запрос к БД из частей, которые будут формироваться исходя из отмеченных чекбоксов?
К примеру, если отмечен чекбокс "дата", то добавляем условие на дату.
  • Вопрос задан
  • 239 просмотров
Пригласить эксперта
Ответы на вопрос 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;
        }
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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