Convertir SQL d'une Requête LINQ

J'ai de la requête SQL suivante et j'ai besoin de l'avoir dans LINQ, j'ai essayé plusieurs choses mais je ne peux pas le faire fonctionner.

Voici la requête SQL

SELECT     ST.Description, ST.STId, COUNT(SI.SIId) AS Expr1
FROM         BP INNER JOIN
                      MbrBP ON BP.BPId = MbrBP.BPId INNER JOIN
                      SI ON BP.BPId = SI.BPId RIGHT OUTER JOIN
                      ST ON SI.STId = ST.STId
WHERE     (BP.CountryId = 1) AND (BP.RegionId = 1) AND (MbrBP.MemberId = 1)
      AND (SI.IsActive = 1)
GROUP BY ST.Description, ST.STId
UNION 
SELECT      ST.Description, ST.STId, COUNT(SI.STId) AS Expr1
FROM         SI RIGHT OUTER JOIN
                      ST ON SI.STId = ST.STId
GROUP BY ST.Description, ST.STId
Ce que vous avez essayé? Et quelle a été votre problème(convertir)?
Pour info c'est LINQ - Language Integrated Query. Pas LinQ. Vu beaucoup de ces derniers temps.
Jetez un oeil à SQL des requêtes LINQ. Il donne des exemples de comment convertir le commun des requêtes SQL dans la syntaxe LINQ.

OriginalL'auteur Francisco G | 2012-01-24