public override Expression <Func <T, bool> > ToExpression() { var leftExpression = _left.ToExpression(); var notExpression = Expression.Not(leftExpression.Body); var lambda = Expression.Lambda <Func <T, bool> >(notExpression, leftExpression.Parameters.Single()); return(lambda); }
public override Expression <Func <T, bool> > ToExpression() { Expression <Func <T, bool> > leftExpression = _left.ToExpression(); Expression <Func <T, bool> > rightExpression = _right.ToExpression(); BinaryExpression andExpression = Expression.AndAlso(leftExpression.Body, rightExpression.Body); return(Expression.Lambda <Func <T, bool> >(andExpression, leftExpression.Parameters.Single())); }
public override Expression <Func <T, bool> > ToExpression() { var leftExpression = _left.ToExpression(); var rightExpression = _right.ToExpression(); var paramExpr = Expression.Parameter(typeof(T)); var exprBody = Expression.OrElse(leftExpression.Body, rightExpression.Body); exprBody = (BinaryExpression) new ParameterReplacer(paramExpr).Visit(exprBody); var finalExpr = Expression.Lambda <Func <T, bool> >(exprBody, paramExpr); return(finalExpr); }