我正在寻找一种更优雅的方式,使用LINQ来汇总2列。我有以下查询,它的工作正常,但看起来效率低下。
什么是更好的重写方式?
谢谢
TotalLaborHours = db.Timesheet.Where(a => a.Date <= MDate & a.Date.Month == MDate.Month)
.Select(a => a.RegularPaidHours).Sum() +
db.Timesheet.Where(a => a.Date <= MDate & a.Date.Month == MDate.Month)
.Select(a => a.OvertimeHours).Sum();
答案 0 :(得分:3)
这不会产生同样的效果吗?
TotalLaborHours = db.Timesheet
.Where(a => a.Date <= MDate & a.Date.Month == MDate.Month)
.Select(a => a.RegularPaidHours + a.OvertimeHours).Sum();
答案 1 :(得分:0)
你可以使用一个匿名类型,它是两列的总和,然后总和如下:
TotalLaborHours = db.Timesheet
.Where(a => a.Date <= MDate & a.Date.Month == MDate.Month)
.Select(a => new { hrs = a.RegularPaidHours + a.OvertimeHours }).Sum(b => b.hrs);