У меня есть Measurement
Объекты с соответствующими свойствами CreationTime
(DateTime) и Reference
(String) и некоторые другие значения.
Я хотел бы написать эффективный запрос linq к DbContext
, который
- группирует объекты
Measurement
по заданномуReference
- упорядочивает группы с помощью свойства
CreationTime
первогоMeasurement
из группы или среднего значения свойствCreationTime
- ограничивает запрос до последнего
numOfEntries
(На следующем этапе я вычисляю усредненные значения по этим возвращенным группам, но думаю, что это не относится к моей проблеме.)
Сам DbContext имеет DbSet<Measurement>
, называемый Measurements
, содержащий все Measurement
объекты.
Я придумал следующий запрос, который приводит к упорядоченному списку групп, но между ними отсутствуют некоторые группы.
var groupByReference = (from m in context.Measurements
orderby m.CreationTime
group m by new { m.Reference } into g
select g).Take(numOfEntries).ToList();
Как правильно выбрать "последние" группы Measurement
?
Я использую Entity Framework 4.4 с базой данных MySQL (MySql Connector/Net 6.6.4). Этот пример упрощен, я могу более подробно и/или привести пример, если это необходимо.
Спасибо!