コード例 #1
0
        protected override void VisitOrElse(Query.Expressions.OrElseExpression expression)
        {
            string leftClause = "";

            if (!(expression.Left is FalseExpression))
            {
                var leftVisitor = VisitInner(expression.Left);
                leftClause = leftVisitor.WhereClause;
            }

            string rightClause = "";

            if (!(expression.Right is FalseExpression))
            {
                var rightVisitor = VisitInner(expression.Right);
                rightClause = rightVisitor.WhereClause;
            }

            if (!string.IsNullOrEmpty(leftClause) && !string.IsNullOrEmpty(rightClause))
            {
                whereClause.AppendFormat(string.Format("(({0}) OR ({1}))", leftClause, rightClause));
            }
            else if (!string.IsNullOrEmpty(leftClause))
            {
                whereClause.AppendFormat(string.Format("({0})", leftClause));
            }
            else if (!string.IsNullOrEmpty(rightClause))
            {
                whereClause.AppendFormat(string.Format("({0})", rightClause));
            }
        }
コード例 #2
0
        protected override void VisitOrElse(Query.Expressions.OrElseExpression expression)
        {
            if (!(expression.Left is FalseExpression))
            {
                VisitInner(expression.Left);
            }

            if (!(expression.Right is FalseExpression))
            {
                VisitInner(expression.Right);
            }
        }
コード例 #3
0
            protected override void VisitOrElse(Query.Expressions.OrElseExpression expression)
            {
                Expression <Func <MediaContent, bool> > leftClause = it => false;

                if (!(expression.Left is FalseExpression))
                {
                    leftClause = VisitInner(expression.Left);
                }

                Expression <Func <MediaContent, bool> > rightClause = it => false;

                if (!(expression.Right is FalseExpression))
                {
                    rightClause = VisitInner(expression.Right);
                }

                var exp = PredicateBuilder.Or(leftClause, rightClause);

                LinqExpression = PredicateBuilder.And(LinqExpression, exp);
            }