using Ant.Core; using Ant.DbExpressions; using System; using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Reflection; using System.Text; namespace Ant.MySql { partial class SqlGenerator : DbExpressionVisitor { static Dictionary> InitAggregateHandlers() { var aggregateHandlers = new Dictionary>(); aggregateHandlers.Add("Count", Aggregate_Count); aggregateHandlers.Add("LongCount", Aggregate_LongCount); aggregateHandlers.Add("Sum", Aggregate_Sum); aggregateHandlers.Add("Max", Aggregate_Max); aggregateHandlers.Add("Min", Aggregate_Min); aggregateHandlers.Add("Average", Aggregate_Average); var ret = Utils.Clone(aggregateHandlers); return ret; } static void Aggregate_Count(DbAggregateExpression exp, SqlGenerator generator) { Aggregate_Count(generator); } static void Aggregate_LongCount(DbAggregateExpression exp, SqlGenerator generator) { Aggregate_LongCount(generator); } static void Aggregate_Sum(DbAggregateExpression exp, SqlGenerator generator) { Aggregate_Sum(generator, exp.Parameters.First(), exp.Method.ReturnType); } static void Aggregate_Max(DbAggregateExpression exp, SqlGenerator generator) { Aggregate_Max(generator, exp.Parameters.First(), exp.Method.ReturnType); } static void Aggregate_Min(DbAggregateExpression exp, SqlGenerator generator) { Aggregate_Min(generator, exp.Parameters.First(), exp.Method.ReturnType); } static void Aggregate_Average(DbAggregateExpression exp, SqlGenerator generator) { Aggregate_Average(generator, exp.Parameters.First(), exp.Method.ReturnType); } } }