У меня есть простой метод, который возвращает ярость данных из БД по некоторым параметрам, и это просто:
public async Task<IEnumerable<P2PStats>> GetFilteredNetStats(ushort id, ushort remoteId, DateTime start, DateTime end)
{
using (var ctx = new DataContext())
{
IQueryable<P2PStats> query = ctx.P2PStats
.Where(stat => stat.Id == id && stat.Date >= start && stat.Date <= end)
.Where(stat => stat.P2PStatsDetailed.Any(detail => detail.RemoteId == remoteId))
.Select(stat => new P2PStats
{
Id = stat.Id,
AxmCardId = stat.Id,
Date = stat.Date,
P2PStatsDetailed = stat.P2PStatsDetailed.Where(detail => detail.RemoteId == remoteId).ToList()
});
return await query.ToListAsync();
}
}
Возвращает коллекцию P2PStats (ну, на самом деле, задача, но в конечном итоге - коллекция). Можно ли изменить это так, чтобы я мог получить только 2 значения из базы данных сначала с наименьшей датой, а затем с самой высокой?
Я пробовал Max и Min, но только после того, как запрос материализован, и я получаю максимальное или минимальное значение или свойство, а не целую запись.