Linq avec Left Join sur la sous-Requête contenant le Comte

Je vais avoir de la difficulté à traduire en sql syntaxe linq.

J'ai 2 tables (Catégorie et CategoryListing) qui référence les uns les autres avec CategoryID. J'ai besoin d'obtenir une liste de tous les CategoryID dans la Catégorie Table et le nombre de CategoryID pour tous les matches de la CategoryListing table. Si un code de catégorie n'est pas présente dans CategoryListing, puis le code de catégorie doit encore être retournés, mais avec une fréquence de 0.

La requête sql suivante montre les résultats attendus:

SELECT c.CategoryID, COALESCE(cl.frequency, 0) as frequency
FROM Category c
LEFT JOIN (
    SELECT cl.CategoryID, COUNT(cl.CategoryID) as frequency 
    FROM CategoryListing cl
    GROUP BY cl.CategoryID
) as cl
ON c.CategoryID = cl.CategoryID
WHERE c.GuideID = 1

OriginalL'auteur Jay Walker | 2009-02-18