How to: Group Data
This topic shows how to group query results. The example returns a set of nested data records that contain the Product.ProductName column, grouped and sorted alphabetically by the first letter of Product.ProductName.
To run the code in this example, you need a fluent model based on the Northwind database.
The following code is the LINQ example.
using ( FluentModel dbContext = new FluentModel() )
{
var query = ( from product in dbContext.Products
group product by product.ProductName.Substring( 0, 1 ) into productGroup
select new
{
FirstLetter = productGroup.Key,
Names = productGroup
} ).OrderBy( letter => letter.FirstLetter );
foreach ( var product in query )
{
Console.WriteLine( "Product names that start with the letter '{0}':",
product.FirstLetter );
foreach ( var name in product.Names )
{
Console.WriteLine( name.ProductName );
}
}
}
Using dbContext As New FluentModel()
Dim query = (
From product In dbContext.Products
Group product By GroupKey = product.ProductName.Substring(0, 1) Into productGroup = _
Group Select New With _
{ _
Key .FirstLetter = GroupKey, _
Key .Names = productGroup _
}).OrderBy(Function(letter) letter.FirstLetter)
For Each product In query
Console.WriteLine("Product names that start with the letter '{0}':", product.FirstLetter)
For Each name In product.Names
Console.WriteLine(name.ProductName)
Next name
Next product
End Using