如何在每个月末获取整个最后一行

时间:2019-02-18 17:19:31

标签: c# entity-framework linq

我正在尝试使用LINQ和lambda表达式访问每月的最后一行,但是我不确定该怎么做。

我已经进行了分组,但问题是我不认为它包含该行中的所有数据。

var tonerPrinterList = _tonerPrinterRepo.GetTonerPrinterForDevice(printerId, starDate, endDate, color).GroupBy(tp => new {tp.timestamp.Year, tp.timestamp.Month});

GetTonerPrinterForDevice生成的数据结构包含的列多于时间戳,例如nominalCoverage和printerID,我需要所有这些列

1 个答案:

答案 0 :(得分:1)

我认为这应该可行。 您首先按日期排序,然后按月份分组,然后选择每个组的最后一个。

var tonerPrinterList = _tonerPrinterRepo.GetTonerPrinterForDevice(printerId, starDate, endDate, color)
    .OrderBy(tp => tp.timestamp)
    .GroupBy(tp => new {tp.timestamp.Year, tp.timestamp.Month})
    .Select(group => group.LastOrDefault());