La mise en œuvre de RANG PLUS de Clause SQL en C#, LINQ

J'ai besoin pour mettre en œuvre les T-clause SQL ....

RANK() OVER (PARTITION BY a.CategoryKey ORDER BY (x.Rate * @BASE_RATE ) DESC )as Rank

...en C#, LINQ. Pour l'instant ce que j'ai trouvé est quelque chose comme ....

var rank = data.GroupBy(d => d.CategoryKey)
               .Select(group => group.OrderByDescending(g => g.Rate * @BAES_RATE) 

Je pense cela me donnerait chaque rang partition ordonnée par le taux de * BASE_RATE. Mais ce que j'ai réellement besoin est la rang d'une seule ligne, ce qui est une sous-requête dans un plus grand résultat. Si vraiment l'ensemble de la requête SQL, je travaille à quelque chose comme ....

SELECT 
    a.Rate,
    a.CategoryKey,
    a.ID,
    .
    .
    .
    RANK() OVER (PARTITION BY a.CategoryKey ORDER BY (x.Rate * @BASE_RATE ) DESC )as Rank
FROM data

OriginalL'auteur MassStrike | 2014-01-06