Linq分组后,再对分组后的每组进行内部排序,获取每组中的第一条记录

有一张表trust, 里面每个PersonId对应多条记录,要求按照PersonId 进行分组,然后取出每个Person最近的一条记录。组成一个新的列表

 

Linq to SQL

var result = from n in trust
        group n by n.PersonId into g
        select g.OrderByDescending(t=>t.Date).FirstOrDefault();

Linq to Entity

var result = _context
             .trusts
             .GroupBy(s => s.PersonId)
             .Select(s => s.OrderByDescending(x => x.Date).FirstOrDefault());

 

posted on 2020-10-05 09:47  新西兰程序员  阅读(252)  评论(0编辑  收藏