protected override Expression VisitSubquery(SubqueryExpression subquery)
        {
            if ((subquery.NodeType == (ExpressionType)DbExpressionType.Scalar || subquery.NodeType == (ExpressionType)DbExpressionType.In) && subquery.Select != null)
            {
                MarkColumnAsUsed(subquery.Select.Alias, subquery.Select.Columns[0].Name);
            }

            return(base.VisitSubquery(subquery));
        }
        protected override Expression VisitSubquery(SubqueryExpression subquery)
        {
            var saveOrderings = this.gatheredOrderings;

            this.gatheredOrderings = null;
            var result = base.VisitSubquery(subquery);

            this.gatheredOrderings = saveOrderings;
            return(result);
        }
 protected override Expression VisitSubquery(SubqueryExpression subquery)
 {
     if ((subquery.NodeType == (ExpressionType)DbExpressionType.Scalar ||
          subquery.NodeType == (ExpressionType)DbExpressionType.In) &&
         subquery.Select != null)
     {
         System.Diagnostics.Debug.Assert(subquery.Select.Columns.Count == 1);
         MarkColumnAsUsed(subquery.Select.Alias, subquery.Select.Columns[0].Name);
     }
     return(base.VisitSubquery(subquery));
 }
        protected virtual Expression VisitSubquery(SubqueryExpression subquery)
        {
            switch ((DbExpressionType)subquery.NodeType)
            {
            case DbExpressionType.Scalar: return(this.VisitScalar(subquery as DbScalarExpression));

            case DbExpressionType.Exists: return(this.VisitExists(subquery as DbExistsExpression));

            case DbExpressionType.In: return(this.VisitIn(subquery as DbInExpression));
            }

            return(subquery);
        }
        protected virtual bool CompareSubquery(SubqueryExpression a, SubqueryExpression b)
        {
            if (a.NodeType != b.NodeType)
            {
                return(false);
            }

            switch ((DbExpressionType)a.NodeType)
            {
            case DbExpressionType.In: return(this.CompareIn(a as DbInExpression, b as DbInExpression));

            case DbExpressionType.Scalar: return(this.CompareScalar(a as DbScalarExpression, b as DbScalarExpression));

            case DbExpressionType.Exists: return(this.CompareExists(a as DbExistsExpression, b as DbExistsExpression));
            }

            return(false);
        }
 protected override Expression VisitSubquery(SubqueryExpression subquery)
 {
     return(subquery);
 }
Beispiel #7
0
 protected override Expression VisitSubquery(SubqueryExpression subquery)
 {
     // don't count aggregates in subqueries
     return(subquery);
 }
 protected override Expression VisitSubquery(SubqueryExpression subquery)
 {
     // don't gather inside scalar & exists
     return(subquery);
 }