我有一个带有记录的sql server表(不是新的) 它有一个或多个人的记录(测量值),所有记录都有一个日期时间字段。 所以对于人1我有5个记录/测量,日期为1月1日,2日,2月8日,3月19日和7月2日。 我可能有10个人2的记录,日期也不同。
现在我想为人1和人2选择最新记录;对于两个人1记录,在日期时间字段中具有最新的日期时间。
可以用EF吗?
亲切的问候, 米歇尔
示例数据
personId日期长度
1 01-13-2009 180
1 01-14-2009 190
1 01-15-2009 184
2 02-18-2009 170
2 01-17-2009 190
在此表中,我想要人1(=第3行)和第2人(=第4行)的最新记录
答案 0 :(得分:6)
from p in Context.WhateverYourTableNameIs
group p by p.PersonId into g
select new
{
PersonId = g.Key
MostRecentMeasurementDate = (DateTime?)
(from m in g
order by m.Date desc
select m.Date).FirstOrDefault())
}