예제 #1
0
        public Expression <Func <T, bool> > ToExpression()
        {
            Expression <Func <T, bool> > leftExpression  = _spec2.ToExpression();
            Expression <Func <T, bool> > rightExpression = _spec1.ToExpression();

            BinaryExpression orExpression = Expression.OrElse(leftExpression.Body, rightExpression.Body);

            return(Expression.Lambda <Func <T, bool> >(orExpression, leftExpression.Parameters.Single()));
        }
예제 #2
0
        public Expression <Func <T, bool> > ToExpression()
        {
            Expression <Func <T, bool> > leftExpression  = _spec2.ToExpression();
            Expression <Func <T, bool> > rightExpression = _spec1.ToExpression();
            BinaryExpression             equalExpression = null;

            if (Equality)
            {
                equalExpression = Expression.Equal(leftExpression, rightExpression);
            }
            else
            {
                equalExpression = Expression.NotEqual(leftExpression, rightExpression);
            }

            return(Expression.Lambda <Func <T, bool> >(equalExpression));
        }