Я хочу получить последнюю запись каждой группы из таблицы SQL Server с помощью Linq.Linq: выберите самую последнюю запись каждой группы
Таблица Пример:
Я хочу, чтобы получить этот результат:
Мой Linq запрос возвращает одну запись для каждой компании, но он не возвращает наиболее последние:
var query = from p in db.Payments
where p.Status == false
&& DateTime.Compare(DateTime.Now, p.NextPaymentDate.Value) == 1
group p by p.CompanyID into op
select op.OrderByDescending(nd => nd.NextPaymentDate.Value).FirstOrDefault();
Что мне здесь не хватает? Почему заказ NextPaymentDate не упорядочен правильно?
!! UPDATE !! Мой запрос работает должным образом. После анализа комментариев @Gilang и @JonSkeet я провел дополнительные тесты и обнаружил, что я не получил ожидаемые результаты из-за не обновляемого столбца.
Это выглядит правильно для меня - 2015-11-13 03: 30: 50.127 * есть * самый последний результат в каждом случае. Какой результат, по вашему мнению, более поздний, чем этот? –
@JonSkeet это изображение является примером того, чего я хочу достичь. Реальный результат показывает старые записи (2015-11-13 03:12:21). – Ricky
Ах. Это помогает, если вы показываете, что вы на самом деле получаете ... извинения за неправильное понимание вопроса. –