示例#1
0
        /// <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);
        }
示例#2
0
 /// <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);
 }