コード例 #1
0
        private InnerJoinExpression VisitInnerJoinExpression(InnerJoinExpression innerJoinExpression)
        {
            var newTable         = (TableExpressionBase)Visit(innerJoinExpression.Table);
            var newJoinPredicate = VisitJoinPredicate((SqlBinaryExpression)innerJoinExpression.JoinPredicate);

            return(innerJoinExpression.Update(newTable, newJoinPredicate));
        }
コード例 #2
0
ファイル: RowNodes.cs プロジェクト: laszlo-kiss/Dataphor
        public override Statement EmitStatement(EmitMode mode)
        {
            InnerJoinExpression expression = new InnerJoinExpression();

            expression.LeftExpression  = (Expression)Nodes[0].EmitStatement(mode);
            expression.RightExpression = (Expression)Nodes[1].EmitStatement(mode);
            expression.Modifiers       = Modifiers;
            return(expression);
        }
コード例 #3
0
        protected override Expression VisitInnerJoin(InnerJoinExpression innerJoinExpression)
        {
            _relationalCommandBuilder.Append("INNER JOIN ");
            Visit(innerJoinExpression.Table);
            _relationalCommandBuilder.Append(" ON ");
            Visit(innerJoinExpression.JoinPredicate);

            return(innerJoinExpression);
        }
        protected override Expression VisitInnerJoin(InnerJoinExpression innerJoinExpression)
        {
            var canOptimize = _canOptimize;

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

            _canOptimize = canOptimize;

            return(innerJoinExpression.Update(newTable, newJoinPredicate));
        }
コード例 #5
0
        public virtual Expression VisitInnerJoinExpression(InnerJoinExpression innerJoinExpression)
        {
            _sql.Append("INNER JOIN ")
            .Append(DelimitIdentifier(innerJoinExpression.Table))
            .Append(" AS ")
            .Append(innerJoinExpression.Alias)
            .Append(" ON ");

            VisitExpression(innerJoinExpression.Predicate);

            return(innerJoinExpression);
        }
        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),
            });
コード例 #7
0
        public virtual Expression VisitInnerJoinExpression(InnerJoinExpression innerJoinExpression)
        {
            Check.NotNull(innerJoinExpression, "innerJoinExpression");

            _sql.Append("INNER JOIN ");

            VisitExpression(innerJoinExpression.TableExpression);

            _sql.Append(" ON ");

            VisitExpression(innerJoinExpression.Predicate);

            return(innerJoinExpression);
        }
コード例 #8
0
        protected override Expression VisitInnerJoin(InnerJoinExpression innerJoinExpression)
        {
            var parentSearchCondition = _isSearchCondition;

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

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

            _isSearchCondition = parentSearchCondition;

            return(innerJoinExpression.Update(table, joinPredicate));
        }
コード例 #9
0
        public virtual Expression VisitInnerJoin(InnerJoinExpression innerJoinExpression)
        {
            Check.NotNull(innerJoinExpression, nameof(innerJoinExpression));

            _relationalCommandBuilder.Append("INNER JOIN ");

            Visit(innerJoinExpression.TableExpression);

            _relationalCommandBuilder.Append(" ON ");

            Visit(innerJoinExpression.Predicate);

            return(innerJoinExpression);
        }
コード例 #10
0
 /// <summary>
 ///     Visits the children of the inner join expression.
 /// </summary>
 /// <param name="innerJoinExpression"> 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 VisitInnerJoin([NotNull] InnerJoinExpression innerJoinExpression);
コード例 #11
0
 protected abstract Expression VisitInnerJoin(InnerJoinExpression innerJoinExpression);
コード例 #12
0
 protected override Expression VisitInnerJoin(InnerJoinExpression innerJoinExpression)
 {
     Visit(innerJoinExpression.Table);
     Visit(innerJoinExpression.JoinPredicate);
     return(innerJoinExpression);
 }
 protected override Expression VisitInnerJoin(InnerJoinExpression x)
 {
     return(x?.Update(x.Table.VisitNode(this), x.JoinPredicate.VisitNode(this)));
 }