Проблема с запросами Linq - PullRequest
1 голос
/ 04 мая 2011

У меня есть запрос linq, который представляет данные, которые присутствуют в таблице CustomersRecord, как следует . Сейчас я группирую данные по номеру счета и дате транзакции и представляю данные в порядке убывания, отсортированном по дате транзакции. Это следующий запрос, который я использую для достижения этой цели.

(from result in db.CustomersRecords
                          orderby result.Date_Of_Transaction.Value descending
                          group result
                              by new { result.Invoice_Number, result.Date_Of_Transaction } into intermediateResult
                          select new { InvoiceNumber = intermediateResult.Key.Invoice_Number, DateOfTransaction = intermediateResult.Key.Date_Of_Transaction, TotalAmount = intermediateResult.Sum(result => result.Total_Amount) }).ToList();

Но при загадочных обстоятельствах я получаю данные в порядке возрастания, снимок экрана показан здесь

Я не понимаю, что происходит внутри.

1 Ответ

5 голосов
/ 04 мая 2011

Переместите порядок на после того, как вы сделаете свою группу на

(from result in db.CustomersRecords

                          group result
                              by new { result.Invoice_Number, result.Date_Of_Transaction } into intermediateResult
                          orderby intermediateResult.Key.Date_Of_Transaction descending
                          select new { InvoiceNumber = intermediateResult.Key.Invoice_Number, DateOfTransaction = intermediateResult.Key.Date_Of_Transaction, TotalAmount = intermediateResult.Sum(result => result.Total_Amount) }).ToList();

Причина, по которой это так, заключается в том, что группа по result.Invoice_Number переопределяет предыдущий порядок на. Поскольку номера счетов-фактур обычно указываются в порядке дат, они отображаются в порядке возрастания.

...