Пример #1
0
        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);
        }
Пример #2
0
        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()));
        }
Пример #3
0
        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);
        }