我正在使用EF模型的ASP.NET核心。我想按日期和时间显示一些行,但我只想要5条记录。我关心的是,它实际上是在获取5条记录之前先对所有行进行排序,还是从表中提取5行,然后对它们进行排序。我需要的是前者,它们被排序,然后在linq中从已经排序的列表中获取5条记录。
我试过了:
Model.Meetings.OrderBy(x => x.Date).ThenBy(x => x.Time).Take(5)
还有,
Model.Meetings.Take(5).OrderBy(x => x.Date.ThenBy(x => x.Time)
第一个似乎没有显示,或者实际上没有返回任何内容。
第二个可以工作并显示5条记录,但是哪5条记录呢?
@foreach (var meeting in Model.Meetings.Take(5).OrderBy(x => x.Date).ThenBy(x => x.Time))
{
@if (meeting.Date > DateTime.Today)
{
<tr>
<td>@meeting.Name</td>
<td>@meeting.Date</td>
<td>@meeting.Time</td>
</tr>
}
}
我希望得到5条记录,以显示按日期然后按时间排序,但排序记录首先显示他们。
以下是示例数据集:
Id日期日期IsActive位置ThisEventId时间
2019-07-19 00:00:00.0000000周五1 On-校园2 09:15:00.0000000
2 2019年7月19日00:00:00.0000000周五1月3日09:00:00.0000000
3 2019年07月19日00:00:00.0000000周五1月4日09:30:00.0000000
4 2019年07月19日00:00:00.0000000周五1月5日10:30:00.0000000
5 2019年07月19日00:00:00.0000000周五1月6日11:00:00.0000000
6 2019年07月19日00:00:00.0000000周五1月7日11:30:00.0000000
2019年07月19日00:00:00.0000000周五1月8日13:00:00.0000000
82019-06-20 00:00:00.0000000周四1月9日08:45:00.0000000
2019-06-20 00:00:00.0000000周四1- 10 -10 09:00:00.0000000
102019-06-20 00:00:00.0000000周四1- 11 09:30:00.0000000
https://stackoverflow.com/questions/56994199
复制相似问题