Linq 分组后取每一组时间最新的一条数据
sql
SELECT * FROM (select ROW_NUMBER()over(partition by Id order by CollTime desc) AS newIndex,* from Table) as T where T.newIndex=1
结果:

lambda
var query = _repository.GetAll().GroupBy(r => r.Id).Select(p => p.OrderByDescending(r => r.CollTime).FirstOrDefault());
Linq
from c in _repository.GetAll() group c by c.Id into g select g.OrderByDescending(r => r.CollTime).FirstOrDefault()
参考