Exemplo n.º 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="outer"></param>
        /// <returns></returns>
        protected virtual Expression VisitOuterJoined(OuterJoinedExpression outer)
        {
            Expression test       = this.Visit(outer.Test);
            Expression expression = this.Visit(outer.Expression);

            if (test != outer.Test || expression != outer.Expression)
            {
                return(new OuterJoinedExpression(test, expression));
            }
            return(outer);
        }
Exemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="proj"></param>
        /// <returns></returns>
        public static ProjectionExpression AddOuterJoinTest(this ProjectionExpression proj)
        {
            string           colName      = proj.Source.GetAvailableColumnName("Test");
            SelectExpression newSource    = proj.Source.AddColumn(new ColumnDeclaration(colName, Expression.Constant(1, typeof(int?))));
            Expression       newProjector =
                new OuterJoinedExpression(
                    new ColumnExpression(typeof(int?), newSource.Alias, colName),
                    proj.Projector
                    );

            return(new ProjectionExpression(newSource, newProjector, proj.Aggregator));
        }
Exemplo n.º 3
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="outer"></param>
 /// <returns></returns>
 protected virtual Expression VisitOuterJoined(OuterJoinedExpression outer)
 {
     this.Write("Outer(");
     this.WriteLine(Indentation.Inner);
     this.Visit(outer.Test);
     this.Write(", ");
     this.WriteLine(Indentation.Same);
     this.Visit(outer.Expression);
     this.WriteLine(Indentation.Outer);
     this.Write(")");
     return(outer);
 }