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))
我有一个 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))