EF Core 分组依据和排序依据

EF Core group by and order by

我有一个 emp table 登录了 emp 我正在尝试查找 emp 最后一次登录的当天,下面是我尝试的查询。按每个员工上次登录时间及其详细信息分组。

var result = this.EMP.Where(a => a.Time.Date == DateTime.Now.Date)
                     .GroupBy(a => a.empname)
                     .Select(g => g.OrderByDescending(a => a.Time))
                     .FirstOrDefault();

我正在尝试通过降序排列并为每位员工取前 1 名。我遇到错误

Collections in the final projection must be an 'IEnumerable

有人可以帮忙吗?

试试这个

var result = this.EMP
          .Where(a => a.Time.Date == DateTime.Now.Date)
          .GroupBy(a => new { a.empname, a.Time})
          .OrderByDescending(a => a.Key.Time))
          .Select(g => new 
             {
             Empname= g.Key.EmpName,
             Time = g.Key.Time
             }).FirstOrDefalt();

我就是这样解决的

  var empids= this.EMP
              .Where(a => a.Time.Date == DateTime.Now.Date)
              .GroupBy(a => new { a.empname})
              .Select(g =>g.Max(x => x.ID)).ToList();

在另一个查询中

var emprecords=this.EMP.Where(e=>empids.Contains(e.ID))