/// <summary> /// Compares the aggregate. /// </summary> /// <param name="a">A.</param> /// <param name="b">The b.</param> /// <returns></returns> protected virtual bool CompareAggregate(AggregateExpression a, AggregateExpression b) { return(a.AggregateName.Equals(b.AggregateName, StringComparison.InvariantCultureIgnoreCase) && this.Compare(a.Argument, b.Argument)); }
/// <summary> /// Visits the aggregate. /// </summary> /// <param name="aggregate">The aggregate.</param> /// <returns></returns> protected virtual Expression VisitAggregate(AggregateExpression aggregate) { var arg = this.Visit(aggregate.Argument); return(this.UpdateAggregate(aggregate, aggregate.Type, aggregate.AggregateName, arg, aggregate.IsDistinct)); }