Linq: создать логическое обратное выражение

Я хотел бы создать метод, который принимаетExpression<Func<T, bool>> и создает логическую инверсию этого (то есть он вернетfalse куда бы он вернулсяtrue, и наоборот. Это намного сложнее, чем я думал. Это где я до:

public static Expression<Func<T, bool>> Not<T>(this Expression<Func<T, bool>> expression)
{
  return Expression.Lambda<Func<T, bool>>(Expression.Not(expression.Body));
}

Это прекрасно компилируется, но при вызове выдает следующее исключение:

Test method Tests.Common.Unit.LinqPredicateBuilderTests.CanInverseAPredicate threw exception: 
System.ArgumentException: Incorrect number of parameters supplied for lambda declaration

Я не имею понятия что я делаю. Может ли кто-нибудь заполнить пробелы?

Ответы на вопрос(1)

Ваш ответ на вопрос