示例#1
0
 protected virtual Expression VisitSubquery(SubqueryExpression subquery)
 {
     switch ((DbExpressionType)subquery.NodeType)
     {
         case DbExpressionType.Scalar:
             return this.VisitScalar((ScalarExpression)subquery);
         case DbExpressionType.Exists:
             return this.VisitExists((ExistsExpression)subquery);
         case DbExpressionType.In:
             return this.VisitIn((InExpression)subquery);
     }
     return subquery;
 }
 protected override Expression VisitSubquery(SubqueryExpression subquery)
 {
     // don't gather inside scalar & exists
     return subquery;
 }
示例#3
0
 protected override Expression VisitSubquery(SubqueryExpression subquery)
 {
     // don't count aggregates in subqueries
     return subquery;
 }
 protected override Expression VisitSubquery(SubqueryExpression subquery)
 {
     return subquery;
 }
示例#5
0
 protected virtual bool CompareSubquery(SubqueryExpression a, SubqueryExpression b)
 {
     if (a.NodeType != b.NodeType)
         return false;
     switch ((DbExpressionType)a.NodeType)
     {
         case DbExpressionType.Scalar:
             return this.CompareScalar((ScalarExpression)a, (ScalarExpression)b);
         case DbExpressionType.Exists:
             return this.CompareExists((ExistsExpression)a, (ExistsExpression)b);
         case DbExpressionType.In:
             return this.CompareIn((InExpression)a, (InExpression)b);
     }
     return false;
 }
示例#6
0
 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.Fields.Count == 1);
         MarkFieldAsUsed(subquery.Select.Alias, subquery.Select.Fields[0].Name);
     }
     return base.VisitSubquery(subquery);
 }