我有一些實例需要返回使用.GroupBy
的數據列表。除了日期和整數之外,我還需要返回布爾值,這似乎無法完成。一個例子模型:帶有布爾值的lambda查詢分組
public class HolidayCheckList
{
public DateTime startDate { get; set; }
public DateTime endDate { get; set; }
public int stafferId { get; set; }
public bool startTime { get; set; }
public bool endTime { get; set; }
}
下面是控制器是目前:
var model = _db.AnnualLeaves
.Where(r => r.StartDate <= tTE && r.EndDate >= tTS)
.GroupBy(r => r.tBooked)
.Select(m => new HolidayCheckList
{
startDate = m.Max(r => r.StartDate),
endDate = m.Max(r => r.EndDate),
stafferId = m.Min(r => r.StafferId)
});
return View(model.ToList());
這做什麼,我需要的。但是,除了startDate
和endDate
我需要將startTime
和endTime
(它們是布爾值)返回給視圖。我不知道我是否需要一個我不知道的聚合運算符,需要包含在.GroupBy
語句中,或者可能需要嵌套查詢。毫無疑問,這將是更簡單的事情。
我曾考慮將數據類型更改爲一個整數,但想知道是否有方法「正確地」執行此操作。
另一方面,是否有lambda查詢的學習資源或文檔?我可以找到基本信息,但沒有詳細說明.GroupBy
是如何工作的,或者是什麼聚合運算符。
答案(您想要使用聚合還是在「GroupBy」lambda中包含屬性)取決於這些屬性中的不同值是否表示不同的組。換句話說,如果兩個'HolidayChecklist'除了'startTime'和'endTime'都相同,它們是否應該組合在一起? – 2014-10-27 17:57:27
如果數據寫入表中,我可以確保startTime和endTime值對於任何組都是相同的,儘管我更喜歡使用諸如Min/Max之類的聚合。 – PawnSacrifice 2014-10-27 18:05:59