GQ08 IV: Linq to Sql bug ?

Un peu de Linq to Sql !

Le fonctionnel est simple, j'aimerais depuis toutes les catégories récupérer une liste d'éléments regroupant le nom de la catégorie ainsi qu'un dictionnaire des produits appartenants à cette catégorie. Ceci afin de pouvoir retrouver rapidement un produit appartenant à une catégorie.

Le code suivant est syntaxiquement correct, il compile même !

Pourtant son exécution est impossible. Quelle est l'erreur ?

 var db = new NorthwindDataContext();
var q =
    from c in db.Categories
    select new { Name = c.CategoryName,
        Products = c.Products.ToDictionary(cat => cat.CategoryID) };

foreach (var c in q)
{
    if (c.Products.ContainsKey(123))
        Console.WriteLine(c.Name + " contient le produit d'id 123");
}

PS: c'est vendredi !! Prenez le temps de répondre et ne laissez pas tout à Matthieu ! :p