我有一個已emp登錄 emps的表,我正在嘗試查找當天最后一次登錄下面的 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 名來嘗試排序。我收到錯誤
最終投影中的集合必須是“IEnumerable”
有人可以幫忙嗎?
uj5u.com熱心網友回復:
試試這個
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();
uj5u.com熱心網友回復:
這就是我解決的方法
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))
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/380050.html
