Я хочу сохранить логическое выражение в базе данных и оценить его. Нет необходимости хранить полное дерево выражений, вероятно, это делают строки.
Я представил себе такую схему: Criteria (expression_to_evaluate, value_to_return)
Например, допустим, у меня есть выражение, которое соответствует людям в возрасте от 20 до 40 лет:
(var >= 20 AND var <= 40)
var
должен быть заменен возрастом данного человека, и в случае совпадения он должен вернуть этот ряд. Если он не совпадает, следует рассмотреть следующую строку, вычисляя это выражение и т. Д.
Могут быть более сложные выражения, такие как:
((var >= 20 AND var <= 40) OR (var < 10))
Может быть, даже с двумя переменными:
((var1 <= 10) AND (var2 >= 10 OR var1 == 20))
Это должно быть сделано либо в SQL (SQL Server 2005/2008), либо в C #. Значение соответствующей строки должно быть возвращено и обработано в C #.
Это вообще возможно?