Expressões lambda e como combiná-las?

Como posso combinar duas expressões lambda em uma usando um OR?

Eu tentei o seguinte, mas mesclá-los exige que eu passe parâmetros para oExpression.Invoke chama, no entanto, quero que o valor passado para o novo lambda seja passado para cada child-lambda.

Expression<Func<int, bool>> func1 = (x) => x > 5;
Expression<Func<int, bool>> func2 = (x) => x < 0;
//Combines the lambdas but result in runtime error saying I need to pass in arguments
//However I want the argument passed into each child lambda to be whatever is passed into the new main lambda
Expression<Func<int, bool>> lambda = Expression.Lambda<Func<int, bool>>(Expression.Or(Expression.Invoke(func1), Expression.Invoke(func2)));

 //The 9 should be passed into the new lambda and into both child lambdas
 bool tst = lambda.Compile().Invoke(9);

Alguma idéia de como combinar duas expressões lambda em uma e os argumentos das crianças lambdas são os do pai?

questionAnswers(4)

yourAnswerToTheQuestion