我有一个表AppointmentStatusHistory
采用以下格式:分组只有在LINQ查询返回最近的记录
AppointmentId AppointmentStatusId Date
========================================================
1 1 2/1/2012 (2nd January)
1 2 2/2/2012 (2nd February)
我目前正在运行针对该查询返回“最近”状态为在给定的时间范围内预约。
我LINQ查询
items = (from t1 in db.AppointmentStatusHistories
from t2 in db.TaskAppointments
.Where(o => (o.ID == t1.AppointmentId))
from t3 in db.Tasks
.Where(o => (o.Task_ID == t2.Parent_Task_ID))
where t1.Timestamp >= first && t1.Timestamp <= last
&& t3.Creator == user
group t1 by t1.AppointmentId into grp
select new UserAppointmentTargetModel
{
AppointmentId = grp.Key,
AppointmentStatusId = grp.OrderByDescending(g => g.Timestamp)
.FirstOrDefault()
.AppointmentStatusId
}
);
使用上述返回AppointmentStatusId的 '1'状态时第一= 1/1/2012年和最后= 2/1/2012
要求
我希望有人也许能够给我修改这符合以下条件的一些建议:
- 如果最最新的状态是当前的周期内, 包括的记录。
- 如果不是,省略它来自结果集。
您如何确定日期状态是否在当前期间? – Aducci 2012-03-06 14:59:05
@Aducci在AppointmentStatus表中使用'Date'字段 – Nick 2012-03-06 15:01:21