Cadre d'entité avec "Group By" et / ou "Order by"

asp.net c# entity-framework visual-studio-2008

Question

Disons que nous avons un projet qui permet à l'utilisateur de télécharger des choses. Sur la page principale, je souhaite afficher les fichiers les plus téléchargés classés par nombre de téléchargements! Tout cela en utilisant EF.

Comment puis-je faire ceci !! J'ai essayé beaucoup de choses avec Group By (c'est un cauchemar quand vous avez beaucoup d'informations dans un objet). Et je ne sais toujours pas comment faire cela ...

var query = from details in m_context.TransactionDetails
                        where details.Chanson != null
                        group details by details.Items into AnItem
                        orderby AnItem.Count()
                        select new Item() {
                            IdItem = Chansons.Key.IdItem,
                            ItemState= Chansons.Key.ItemState,
                            [...This object got something like 20 including links to other objects ... ]
                        };

Quelqu'un a une idée?

Merci)

Oh, et désolée pour mon anglais, je donne le meilleur de moi-même mais je viens de Québec (parle habituellement français)

Réponse acceptée

Salut!

Je vais un peu deviner votre modèle de données, ici, mais je ne pense pas que vous ayez besoin de grouper:

var query = from details in m_context.TransactionDetails
            where details.Chanson != null
            orderby details.Items.Count() descending
            select new Item
            {
                IdItem = details.Chanson.IdItem,
                ItemState= details.Chanson.ItemState,
                // ...
            };

Bonne chance!

Mise à jour: Pour les albums:

var query = from details in m_context.TransactionDetails
            where details.DisqueCompact != null
            orderby details.Items.Count() descending
            select new Item 
            {
                IdItem = details.DisqueCompact.IdItem,
                ItemState= details.DisqueCompact.QuelqueChose...
                // ...
            };

Vous avez probablement besoin de deux requêtes en fonction de votre modèle de données.


Réponse populaire

Pour regrouper des données, vous pouvez lire ce How-To à partir de MSDN.



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow