Substituindo o nome do parâmetro no corpo de uma expressão

Estou tentando criar expressões dinamicamente com base em um objeto Specificatio

Eu criei uma classe ExpressionHelper que possui uma Expression privada assim:

private Expression<Func<T, bool>> expression;

public ExpressionHelper()
{
    expression = (Expression<Func<T, bool>>)(a => true);
}

E, em seguida, alguns métodos fáceis da seguinte maneira:

public void And(Expression<Func<T,bool>> exp);

Estou lutando com o corpo do método And. Basicamente, quero arrancar o corpo deexp, substitua todos os parâmetros pelos deexpression e depois anexá-lo ao final doexpression corpo como e AndAlso.

Eu fiz isso:

var newBody = Expression.And(expression.Body,exp.Body);

expression = expression.Update(newBody, expression.Parameters);

Mas isso acaba com minha expressão assim:

{ a => e.IsActive && e.IsManaged }

Existe uma maneira mais simples de fazer isso? Ou como posso retirar esses e's e substituí-los por a's?

questionAnswers(1)

yourAnswerToTheQuestion