Я пытаюсь динамически создавать выражения на основе объекта Specification.
I ' Мы создали класс ExpressionHelper, который имеет частное выражение вроде такого:
private Expression<Func<T, bool>> expression;
public ExpressionHelper()
{
expression = (Expression<Func<T, bool>>)(a => true);
}
А затем несколько простых методов, как показано ниже:
public void And(Expression<Func<T,bool>> exp);
Я борюсь с телом метода And. Я в принципе хочу тело вырвать из exp
, замените все параметры параметрами в выражение
, а затем добавьте его в конец тела выражения
как и AndAlso.
Я сделал это:
var newBody = Expression.And(expression.Body,exp.Body);
expression = expression.Update(newBody, expression.Parameters);
Но на этом все закончилось вверх с моим выражением лица, выглядящим следующим образом:
{ a => e.IsActive && e.IsManaged }
Есть ли более простой способ сделать это? Или как мне вырвать эти е и заменить их на?