Je suis perplexe par ce problème de données facile. J'utilise le framework Entity et j'ai une base de données de produits. Ma page de résultats renvoie une liste paginée de ces produits. En ce moment, mes résultats sont triés par le nombre de ventes de chaque produit, de sorte que mon code ressemble à ceci:Comment ajouter ROW_NUMBER à une requête ou une entité LINQ?
return Products.OrderByDescending(u => u.Sales.Count());
Cela renvoie un ensemble de données IQueryable de mes entités, triées par le nombre de ventes.
Je veux que ma page de résultats montre le classement de chaque produit (dans l'ensemble de données). Mes résultats devraient ressembler à ceci:
Page #1
1. Bananas
2. Apples
3. Coffee
Page #2
4. Cookies
5. Ice Cream
6. Lettuce
J'attends que je veux juste ajouter une colonne dans mes résultats en utilisant la variable SQL ROW_NUMBER ... mais je ne sais pas comment ajouter cette colonne à mon résultats datatable.
Ma page résultante contient une boucle foreach, mais puisque j'utilise un ensemble paginé, je suppose que l'utilisation de ce nombre pour simuler un numéro de classement ne serait PAS la meilleure approche. Donc, ma question est, comment puis-je ajouter une colonne ROW_NUMBER à mes résultats de requête dans ce cas?
Haha. J'étais en train d'implémenter ça à la main mais ça fonctionne. –
Je ne sais pas si cela compte, mais cela va être difficile à transmettre, car c'est un objet anonyme. –
Vous n'avez pas besoin d'utiliser un type anonyme. Créez un type non-anonyme et utilisez-le si vous en avez besoin. C'est juste un exemple. –