Example #1
0
 protected override Expression VisitProjection(ProjectionExpression projection)
 {
     LambdaExpression subQuery = Expression.Lambda(base.VisitProjection(projection), this.documentParameter);
     Type elementType = TypeSystem.GetElementType(subQuery.Body.Type);
     MethodInfo mi = miExecuteSubQuery.MakeGenericMethod(elementType);
     return Expression.Convert(Expression.Call(this.documentParameter, mi, Expression.Constant(subQuery)), projection.Type);
 }
        protected virtual Expression VisitProjection(ProjectionExpression proj)
        {
            SelectExpression source = (SelectExpression)this.Visit(proj.Source);
              Expression projector = this.Visit(proj.Projector);

              if (source != proj.Source || projector != proj.Projector)
              {
            return new ProjectionExpression(source, projector);
              }

              return proj;
        }
Example #3
0
 public ElementAtExpression(ProjectionExpression proj, Expression indexExpression)
     : base(proj.Source, proj.Projector)
 {
     this.Index = indexExpression;
 }
Example #4
0
 public CountExpression(ProjectionExpression proj)
     : base(proj.Source, proj.Projector)
 {
 }
 internal TakeExpression(ProjectionExpression proj, Expression skipAmount, Expression takeAmount)
     : base(proj,skipAmount)
 {
     this.TakeAmount = takeAmount;
 }
 public SkipExpression(ProjectionExpression proj, Expression skipAmount)
     : base(proj.Source, proj.Projector)
 {
     this.SkipAmount = skipAmount;
 }