Деревья выражений как основа для определяемого пользователем механизма запросов (использующего EAV)? - PullRequest
2 голосов
/ 21 сентября 2010

Я поддерживаю мультитенантную систему, которая позволяет пользователям определять пользовательские формы.Модель данных основана на EAV, поскольку выдача динамического DDL для изменения схемы таблицы не работает при поддержке нескольких арендаторов в одной БД.Предстоящим требованием является создание гибкого конструктора запросов, который позволит пользователям настраивать простые предикаты на основе определенных ими пользовательских форм:

  1. Поле настраиваемой даты

    И

  2. Поле настраиваемого номера1> 1000 и <1500 </p>

    Или

  3. Поле настраиваемого номера2 равно нулю

Я намеревался создать этот механизм запросов с помощью динамической буферизации строк SQL, но мне интересно, предлагают ли деревья выражений более тестируемый и безопасный для типов подход.Это хорошее приложение для инопланетян?

Ответы [ 2 ]

1 голос
/ 09 ноября 2010

Обязательно ознакомьтесь с Динамической библиотекой запросов LINQ в качестве другого варианта. Это популярно и мощно.

1 голос
/ 24 сентября 2010

Да, использование деревьев выражений было бы намного лучше / проще для подхода к динамическим пользовательским запросам.Этот простой класс может сильно помочь в построении динамических запросов:

PredicateBuilder

...