/// <summary> /// /// </summary> /// <param name="join"></param> /// <returns></returns> protected virtual Expression VisitClientJoin(ClientJoinExpression join) { ProjectionExpression projection = (ProjectionExpression)this.Visit(join.Projection); var outerKey = this.VisitExpressionList(join.OuterKey); var innerKey = this.VisitExpressionList(join.InnerKey); if (projection != join.Projection || outerKey != join.OuterKey || innerKey != join.InnerKey) { return(new ClientJoinExpression(projection, outerKey, innerKey)); } return(join); }
/// <summary> /// /// </summary> /// <param name="join"></param> /// <returns></returns> protected virtual Expression VisitClientJoin(ClientJoinExpression join) { this.AddAlias(join.Projection.Source.Alias); this.Write("ClientJoin("); this.WriteLine(Indentation.Inner); this.Write("OuterKey("); this.VisitExpressionList(join.OuterKey); this.Write("),"); this.WriteLine(Indentation.Same); this.Write("InnerKey("); this.VisitExpressionList(join.InnerKey); this.Write("),"); this.WriteLine(Indentation.Same); this.Visit(join.Projection); this.WriteLine(Indentation.Outer); this.Write(")"); return(join); }