Как использовать Expression(Of TDelegate).Update Method

Я создал хранилище, используя лямбда-выражения для фильтрации коллекций сущностей. В качестве параметра метода я отправляю Expression> exp. Но внутри метода я хотел бы обновить это же выражение с некоторыми глобальными фильтрами. Я вижу, что у самого объекта выражения есть метод 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

5
задан baddaydaddy 25 November 2011 в 08:28
поделиться