【发布时间】:2011-12-20 07:17:27
【问题描述】:
我有三张桌子:
- 节目
- 身份证
- 姓名
- 时间表
- 程序 ID
- AvailableSpots
- 计划日期
- ScheduleId
- 开始日期
- 结束日期
计划是一种事件,而计划是 ScheduleDates 的集合,因为计划会持续数天。
我希望能够显示如下列表:
// 1st is the earliest ScheduleDate and 14th is the latest. The records in between
// are ignored.
January 1-14
Program 1 5 spots left
Program 2 10 spots left
January 10-24
Program 1 0 spots left
January 20-31
Program 3 10 spots left
我需要浏览所有时间表,并按开始/结束日期对它们进行分组,以便显示该时间段内发生的所有节目。
我对 LINQ 不太熟悉,据我所知是这样的:
var schedules = from program in _db.Programs
join schedule in _db.Schedules on program.Id equals schedule.ProgramId
join date in _db.ScheduleDates on schedule.Id equals date.ScheduleId
// a few where clauses
orderby date.Startdate
group date by date.Schedule into sch
select sch;
我不确定这是否正确,但它确实为我提供了我的日程安排及其相关日期的分组列表,我可以通过.First 和.Last 获取January 1-14。
不过,我不确定如何通过匹配开始/结束日期对它们进行分组,然后将匹配项下的项目分组。
【问题讨论】:
-
所以您只想根据第一个/最后一个日期组成组?