protected virtual Expression VisitJoin(JoinExpression join) { var left = this.Visit(join.Left) as SourceExpression; var right = this.Visit(join.Right) as SourceExpression; var comparison = join.Comparison != null ? this.Visit(join.Comparison) : null; if (left == join.Left && right == join.Right && comparison == join.Comparison) return join; return CompleteExpression.Join(left, right, join.JoinType, comparison); }
protected virtual Expression VisitJoin(JoinExpression join) { this.Write("." + join.JoinType + "("); this.WriteLine(Indentation.Inner); this.Visit(join.Left); this.Write(","); this.WriteLine(Indentation.Same); this.Visit(join.Right); if (join.Comparison != null) { this.Write(","); this.WriteLine(Indentation.Same); this.Visit(join.Comparison); } this.WriteLine(Indentation.Outer); this.Write(")"); return join; }
protected override Expression VisitJoin(JoinExpression join) { VisitSource(join.Left); VisitJoinType(join.JoinType); VisitSource(join.Right); if (join.Comparison != null) { this.AppendNewLine(Indentation.Inner); sb.Append(" on "); this.Visit(join.Comparison); this.Indent(Indentation.Outer); } this.Indent(Indentation.Outer); return join; }