protected BatchExpression UpdateBatch(BatchExpression batch, Expression input, LambdaExpression operation) { if (input != batch.Input || operation != batch.Operation) { return(new BatchExpression(input, operation)); } return(batch); }
protected virtual Expression VisitBatch(BatchExpression batch) { this.Write("Batch("); this.WriteLine(Indentation.Inner); this.Visit(batch.Input); this.Write(","); this.WriteLine(Indentation.Same); this.Visit(batch.Operation); this.Write(")"); return(batch); }
protected virtual bool CompareBatch(BatchExpression x, BatchExpression y) { return(this.Compare(x.Input, y.Input) && this.Compare(x.Operation, y.Operation)); }
protected virtual Expression VisitBatch(BatchExpression batch) { var operation = (LambdaExpression)this.Visit(batch.Operation); return(this.UpdateBatch(batch, batch.Input, operation)); }