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), });
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)); }
/// <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);
protected abstract Expression VisitLeftJoin(LeftJoinExpression leftJoinExpression);
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)); }