c# – 具有“Group By”和/或“Order by”的实体框架

假设我们有一个允许用户下载内容的项目.在主页面上,我想显示下载次数最多的下载文件!所有使用EF.

我怎样才能做到这一点 !!我用Group By尝试了很多东西(当你在对象中获得大量信息时,这是一场噩梦).我仍然不知道如何做到这一点……

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 ... ]
                        };

有人有想法吗?

谢谢:o)

哦,对不起我的英语,我尽我所能,但我来自魁北克(Usualy talk french).

最佳答案 萨吕!

我会在这里稍微猜测一下你的数据模型,但我认为你不需要分组:

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的机会!

更新:对于专辑:

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...
                // ...
            };

根据您的数据模型,您可能需要两个查询.

点赞