示例#1
0
        protected virtual Expression VisitOuterJoined(OuterJoinedExpression outer)
        {
            Expression test       = this.Visit(outer.Test);
            Expression expression = this.Visit(outer.Expression);

            return(this.UpdateOuterJoined(outer, test, expression));
        }
示例#2
0
 protected OuterJoinedExpression UpdateOuterJoined(OuterJoinedExpression outer, Expression test, Expression expression)
 {
     if ((test != outer.Test) || (expression != outer.Expression))
     {
         return(new OuterJoinedExpression(test, expression));
     }
     return(outer);
 }
示例#3
0
 protected virtual Expression VisitOuterJoined(OuterJoinedExpression outer)
 {
     base.Write("Outer(");
     base.WriteLine(ExpressionWriter.Indentation.Inner);
     this.Visit(outer.Test);
     base.Write(", ");
     base.WriteLine(ExpressionWriter.Indentation.Same);
     this.Visit(outer.Expression);
     base.WriteLine(ExpressionWriter.Indentation.Outer);
     base.Write(")");
     return(outer);
 }
        protected override Expression VisitOuterJoined(OuterJoinedExpression outer)
        {
            ParameterExpression expression3;
            int              num;
            Expression       ifFalse = this.Visit(outer.Expression);
            ColumnExpression test    = (ColumnExpression)outer.Test;

            if (this.scope.TryGetValue(test, out expression3, out num))
            {
                return(Expression.Condition(Expression.Call((Expression)expression3, "IsDbNull", (Type[])null, new Expression[] { Expression.Constant(num) }), Expression.Constant(King.Framework.Linq.TypeHelper.GetDefault(outer.Type), outer.Type), ifFalse));
            }
            return(ifFalse);
        }