Я использую некоторый код (доступный здесь в MSDN) для динамического построения выражений LINQ, содержащих несколько «предложений» ИЛИ.
Соответствующий код
var equals = values.Select(value => (Expression)Expression.Equal(valueSelector.Body, Expression.Constant(value, typeof(TValue))));
var body = equals.Aggregate<Expression>((accumulate, equal) => Expression.Or(accumulate, equal));
Это генерирует выражение LINQ, которое выглядит примерно так:
(((((ID = 5) OR (ID = 4)) OR (ID = 3)) OR (ID = 2)) OR (ID = 1))
Я достигаю предела рекурсии (100) при использовании этого выражения, поэтому я хотел бы сгенерировать выражение, которое выглядит так:
(ID = 5) OR (ID = 4) OR (ID = 3) OR (ID = 2) OR (ID = 1)
Как мне изменить код построения выражения, чтобы сделать это?