我有一個表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