Grouping Methods (LINQ to Entities)

Most of the LINQ grouping methods are supported in LINQ to Entities, with the exception of those that accept an IEqualityComparer, because the comparer cannot be translated to the data source. For more information, see Standard Query Operators in LINQ to Entities Queries. The following table lists the supported and unsupported grouping methods.

Supported and Unsupported Methods

Method Support Visual Basic function signature C# method signature

GroupBy

Supported

Function GroupBy(Of TSource, TKey) ( _
source As IQueryable(Of TSource), _
keySelector As Expression(Of Func(Of TSource, TKey)) _
) As IQueryable(Of IGrouping(Of TKey, TSource))
IQueryable<IGrouping<TKey, TSource>> GroupBy<TSource, TKey>(
this IQueryable<TSource> source,
Expression<Func<TSource, TKey>> keySelector
)

GroupBy

Not supported

Function GroupBy(Of TSource, TKey) ( _
source As IQueryable(Of TSource), _
keySelector As Expression(Of Func(Of TSource, TKey)), _
comparer As IEqualityComparer(Of TKey) _
) As IQueryable(Of IGrouping(Of TKey, TSource))
IQueryable<IGrouping<TKey, TSource>> GroupBy<TSource, TKey>(
this IQueryable<TSource> source,
Expression<Func<TSource, TKey>> keySelector,
IEqualityComparer<TKey> comparer
)

GroupBy

Supported

Function GroupBy(Of TSource, TKey, TElement) ( _
source As IQueryable(Of TSource), _
keySelector As Expression(Of Func(Of TSource, TKey)), _
elementSelector As Expression(Of Func(Of TSource, TElement)) _
) As IQueryable(Of IGrouping(Of TKey, TElement))
IQueryable<IGrouping<TKey, TElement>> GroupBy<TSource, TKey, TElement>(
this IQueryable<TSource> source,
Expression<Func<TSource, TKey>> keySelector,
Expression<Func<TSource, TElement>> elementSelector
)

GroupBy

Supported

Function GroupBy(Of TSource, TKey, TResult) ( _
source As IQueryable(Of TSource), _
keySelector As Expression(Of Func(Of TSource, TKey)), _
resultSelector As Expression(Of Func(Of TKey, IEnumerable(Of TSource), TResult)) _
) As IQueryable(Of TResult)
IQueryable<TResult> GroupBy<TSource, TKey, TResult>(
this IQueryable<TSource> source,
Expression<Func<TSource, TKey>> keySelector,
Expression<Func<TKey, IEnumerable<TSource>, TResult>> resultSelector
)

GroupBy

Not supported

Function GroupBy(Of TSource, TKey, TElement) ( _
source As IQueryable(Of TSource), _
keySelector As Expression(Of Func(Of TSource, TKey)), _
elementSelector As Expression(Of Func(Of TSource, TElement)), _
comparer As IEqualityComparer(Of TKey) _
) As IQueryable(Of IGrouping(Of TKey, TElement))
IQueryable<IGrouping<TKey, TElement>> GroupBy<TSource, TKey, TElement>(
this IQueryable<TSource> source,
Expression<Func<TSource, TKey>> keySelector,
Expression<Func<TSource, TElement>> elementSelector,
IEqualityComparer<TKey> comparer

GroupBy

Supported

Function GroupBy(Of TSource, TKey, TElement, TResult) ( _
source As IQueryable(Of TSource), _
keySelector As Expression(Of Func(Of TSource, TKey)), _
elementSelector As Expression(Of Func(Of TSource, TElement)), _
resultSelector As Expression(Of Func(Of TKey, IEnumerable(Of TElement), TResult)) _
) As IQueryable(Of TResult)
IQueryable<TResult> GroupBy<TSource, TKey, TElement, TResult>(
this IQueryable<TSource> source,
Expression<Func<TSource, TKey>> keySelector,
Expression<Func<TSource, TElement>> elementSelector,
Expression<Func<TKey, IEnumerable<TElement>, TResult>> resultSelector
)

GroupBy

Not supported

Function GroupBy(Of TSource, TKey, TResult) ( _
source As IQueryable(Of TSource), _
keySelector As Expression(Of Func(Of TSource, TKey)), _
resultSelector As Expression(Of Func(Of TKey, IEnumerable(Of TSource), TResult)), _
comparer As IEqualityComparer(Of TKey) _
) As IQueryable(Of TResult)
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
)

GroupBy

Not supported

Function GroupBy(Of TSource, TKey, TElement, TResult) ( _
source As IQueryable(Of TSource), _
keySelector As Expression(Of Func(Of TSource, TKey)), _
elementSelector As Expression(Of Func(Of TSource, TElement)), _
resultSelector As Expression(Of Func(Of TKey, IEnumerable(Of TElement), TResult)), _
comparer As IEqualityComparer(Of TKey) _
) As IQueryable(Of TResult)
IQueryable<TResult> GroupBy<TSource, TKey, TElement, TResult>(
this IQueryable<TSource> source,
Expression<Func<TSource, TKey>> keySelector,
Expression<Func<TSource, TElement>> elementSelector,
Expression<Func<TKey, IEnumerable<TElement>, TResult>> resultSelector,
IEqualityComparer<TKey> comparer
)

See Also

Concepts

Supported and Unsupported Methods (LINQ to Entities)