private bool CanJoinOnClient(SelectExpression select)
 {
     return((((this.canJoinOnClient && (this.currentMember != null)) && (!this.policy.IsDeferLoaded(this.currentMember) && !select.IsDistinct)) && ((select.GroupBy == null) || (select.GroupBy.Count == 0))) && !AggregateChecker.HasAggregates(select));
 }
 public ProjectionExpression(SelectExpression source, Expression projector, LambdaExpression aggregator) : base(DbExpressionType.Projection, (aggregator != null) ? aggregator.Body.Type : typeof(IEnumerable <>).MakeGenericType(new Type[] { projector.Type }))
 {
     this.select     = source;
     this.projector  = projector;
     this.aggregator = aggregator;
 }
示例#3
0
 public DeclarationCommand(IEnumerable <VariableDeclaration> variables, SelectExpression source) : base(DbExpressionType.Declaration, typeof(void))
 {
     this.variables = variables.ToReadOnly <VariableDeclaration>();
     this.source    = source;
 }
 public ProjectionExpression(SelectExpression source, Expression projector) : this(source, projector, null)
 {
 }
示例#5
0
 public static HashSet <ColumnExpression> Gather(HashSet <TableAlias> aliases, SelectExpression select)
 {
     QueryLanguage.JoinColumnGatherer gatherer = new QueryLanguage.JoinColumnGatherer(aliases);
     gatherer.Gather(select.Where);
     return(gatherer.columns);
 }
 protected SubqueryExpression(DbExpressionType eType, Type type, SelectExpression select) : base(eType, type)
 {
     Debug.Assert(((eType == DbExpressionType.Scalar) || (eType == DbExpressionType.Exists)) || (eType == DbExpressionType.In));
     this.select = select;
 }
示例#7
0
        protected override Expression VisitProjection(ProjectionExpression proj)
        {
            SelectExpression select = (SelectExpression)this.Visit(proj.Select);

            return(base.UpdateProjection(proj, select, proj.Projector, proj.Aggregator));
        }
 public InExpression(System.Linq.Expressions.Expression expression, SelectExpression select) : base(DbExpressionType.In, typeof(bool), select)
 {
     this.expression = expression;
 }