예제 #1
0
        private LeftJoinExpression VisitLeftJoinExpression(LeftJoinExpression leftJoinExpression)
        {
            var newTable         = (TableExpressionBase)Visit(leftJoinExpression.Table);
            var newJoinPredicate = VisitJoinPredicate((SqlBinaryExpression)leftJoinExpression.JoinPredicate);

            return(leftJoinExpression.Update(newTable, newJoinPredicate));
        }
        protected override Expression VisitLeftJoin(LeftJoinExpression leftJoinExpression)
        {
            _relationalCommandBuilder.Append("LEFT JOIN ");
            Visit(leftJoinExpression.Table);
            _relationalCommandBuilder.Append(" ON ");
            Visit(leftJoinExpression.JoinPredicate);

            return(leftJoinExpression);
        }
        protected override Expression VisitLeftJoin(LeftJoinExpression leftJoinExpression)
        {
            var canOptimize = _canOptimize;

            _canOptimize = false;
            var newTable         = (TableExpressionBase)Visit(leftJoinExpression.Table);
            var newJoinPredicate = VisitJoinPredicate((SqlBinaryExpression)leftJoinExpression.JoinPredicate);

            _canOptimize = canOptimize;

            return(leftJoinExpression.Update(newTable, newJoinPredicate));
        }
        protected override Expression VisitExtension(Expression extensionExpression)
        {
            Check.NotNull(extensionExpression, nameof(extensionExpression));

            return(extensionExpression switch
            {
                ShapedQueryExpression shapedQueryExpression => VisitShapedQueryExpression(shapedQueryExpression),
                CaseExpression caseExpression => VisitCase(caseExpression),
                SelectExpression selectExpression => VisitSelect(selectExpression),
                InnerJoinExpression innerJoinExpression => VisitInnerJoin(innerJoinExpression),
                LeftJoinExpression leftJoinExpression => VisitLeftJoin(leftJoinExpression),
                _ => base.VisitExtension(extensionExpression),
            });
예제 #5
0
        protected override Expression VisitLeftJoin(LeftJoinExpression leftJoinExpression)
        {
            var parentSearchCondition = _isSearchCondition;

            _isSearchCondition = false;
            var table = (TableExpressionBase)Visit(leftJoinExpression.Table);

            _isSearchCondition = true;
            var joinPredicate = (SqlExpression)Visit(leftJoinExpression.JoinPredicate);

            _isSearchCondition = parentSearchCondition;

            return(leftJoinExpression.Update(table, joinPredicate));
        }
예제 #6
0
 /// <summary>
 ///     Visits the children of the left join expression.
 /// </summary>
 /// <param name="leftJoinExpression"> The expression to visit. </param>
 /// <returns> The modified expression, if it or any subexpression was modified; otherwise, returns the original expression. </returns>
 protected abstract Expression VisitLeftJoin([NotNull] LeftJoinExpression leftJoinExpression);
예제 #7
0
 protected abstract Expression VisitLeftJoin(LeftJoinExpression leftJoinExpression);
예제 #8
0
 protected override Expression VisitLeftJoin(LeftJoinExpression leftJoinExpression)
 {
     Visit(leftJoinExpression.Table);
     Visit(leftJoinExpression.JoinPredicate);
     return(leftJoinExpression);
 }
 protected override Expression VisitLeftJoin(LeftJoinExpression x)
 {
     return(x?.Update(x.Table.VisitNode(this), x.JoinPredicate.VisitNode(this)));
 }
 protected override Expression VisitLeftJoin(LeftJoinExpression leftJoinExpression)
 {
     return(base.VisitLeftJoin(leftJoinExpression));
 }