public static TAccumulate Aggregate <TSource, TAccumulate>(this IQueryable <TSource> source, TAccumulate seed, Expression <Func <TAccumulate, TSource, TAccumulate> > func) { Check.SourceAndFunc(source, func); return(source.Provider.Execute <TAccumulate>(StaticCall(MakeGeneric(MethodBase.GetCurrentMethod(), typeof(TSource), typeof(TAccumulate)), source.Expression, Expression.Constant(seed), Expression.Quote(func)))); }