public static IQueryable <TResult> GroupBy <TSource, TKey, TResult>(this IQueryable <TSource> source, Expression <Func <TSource, TKey> > keySelector, Expression <Func <TKey, IEnumerable <TSource>, TResult> > resultSelector, IEqualityComparer <TKey> comparer) { Check.SourceAndKeyResultSelectors(source, keySelector, resultSelector); return(source.Provider.CreateQuery <TResult>(StaticCall(MakeGeneric(MethodBase.GetCurrentMethod(), typeof(TSource), typeof(TKey), typeof(TResult)), source.Expression, Expression.Quote(keySelector), Expression.Quote(resultSelector), Expression.Constant(comparer)))); }