Структура сущности с «Группой по» и / или «Упорядочить по» - PullRequest
4 голосов
/ 14 октября 2009

Скажем, у нас есть проект, который позволяет пользователям загружать вещи. На главной странице хочу показать Самые скачиваемые файлы, упорядоченные по количеству скачиваний! Все это с помощью 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 ... ]
                        };

У кого-нибудь есть идея?

Спасибо: о)

О, извините за мой английский, я делаю все возможное, но я из Квебека (обычно говорят по-французски).

Ответы [ 3 ]

2 голосов
/ 14 октября 2009

Salut!

Я собираюсь немного догадаться о вашей модели данных, но я не думаю, что вам нужно группировать:

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

Боннский шанс!

Обновление: Для альбомов:

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

Вам, вероятно, понадобятся два запроса для вашей модели данных.

1 голос
/ 14 октября 2009

Для группировки данных вы можете прочитать this How-To из MSDN.

0 голосов
/ 05 ноября 2011

Это пример того, как вы должны это сделать:

//this is a entity framework objects
CTSPEntities CEntity = new CTSPEntities();

//and this is your example query
var query = (from details in CEntity.Purchase_Product_Details
             group details by new { details.Product_Details.Product_Code, details.Product_Details.Product_Name} into Prod
             select new
             {
                 PID = Prod.Key.Product_Code,
                 PName = Prod.Key.Product_Name,
                 Amount = Prod.Sum(c => c.Lot_Amount),
                 count= Prod.Count()
             }).OrderBy(x => x.Amount);
foreach (var item in query)
{
    Console.WriteLine("{0},{1},{2},{3}",item.PID,item.PName,item.Amount,item.count);
}
Console.ReadLine();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...