LINQ Groupe Par et sélectionnez collection

J'ai cette structure

Customer
 - has many Orders
  - has many OrderItems

Je veux générer une liste de CustomerItems via LINQ donné un sous-ensemble de OrderItems:

List of new { Customer, List<OrderItem> Items }

qui est un regroupement de tous les éléments d'un Client a commandé à partir du sous-ensemble des éléments

Comment puis-je utiliser LINQ to retour piste à travers l'ordre et de groupe par le Client pour générer cet objet?

jusqu'à présent, je suis sur quelque chose comme

items
 .GroupBy(i => i, i => i.Order.Customer, (i, customer) => new {customer, i})

Mais c'est évidemment pas une Liste. Je suppose que j'ai besoin d'un SelectMany là quelque part, mais pourrait faire avec quelques pointeurs.