Я создал хранилище, используя лямбда-выражения для фильтрации коллекций сущностей. В качестве параметра метода я отправляю Expression
. Но внутри метода я хотел бы обновить это же выражение с некоторыми глобальными фильтрами. Я вижу, что у самого объекта выражения есть метод Update, но я не могу понять, как он реализован (и не могу ничего найти в сети).
exp.Update(exp.Body, ???);
Кто-нибудь может привести пример?
EDIT: Определение метода: http://msdn.microsoft.com/en-us/library/ee378255.aspx
EDIT2: Вот мой код (где я пытаюсь использовать .And):
Expression> newExp = c => c.CaseStatusId != (int)CaseStatus.Finished
var binExp = Expression.And(exp.Body, newExp.Body);
ParameterExpression paramExp = Expression.Parameter(typeof(Expression>), "c");
return repository.Where(Expression.Lambda>>(binExp,
new[] { paramExp }).Compile()).ToArray();
Он терпит неудачу со следующим ArgumentException: Lambda type parameter must be derived from System.Delegate