我有以下模型:
public class MonthReport
{
public int Id { set; get; }
public DateTime MonthYear { set; get; }
public int LateEntry { set; get; }
public int LeftEarly { set; get; }
public int TotalAttandence { set; get; }
public int Great { set; get; }
public int PersonelId { set; get; }
public Personel Personel { set; get; }
}
哪个首先使用代码映射到db。
我想按月和年对报告进行分组,然后我要获取该特定月份的LateEntry,LeftEarly和其他int值的总和。
我有以下代码片段,无法返回正确的内容。
public ActionResult GetReportsGroupedByMonth()
{
var results = _db.MonthReports
.GroupBy(
x => new
{
Month = x.MonthYear.Month,
Year = x.MonthYear.Year
},
(key, g) =>
new ChartModel
{
Date = g.Select(v=>v.MonthYear).FirstOrDefault(),
GreatDay = g.Select(e=>e.Great).Sum(),
LateEntry = g.Select(e => e.LateEntry).Sum(),
LeftEarly = g.Select(e => e.LateEntry).Sum(),
TotalAttendance = g.Select(e => e.LateEntry).Sum(),
});
return Json(results, JsonRequestBehavior.AllowGet);
}
在结果集中,值相同。
这是什么问题?
谢谢。
我认为这只是复制/粘贴失败。您已e.LateEntry
在中为3个属性选择/汇总ChartModel
。
考虑改变
new ChartModel
{
Date = g.Select(v=>v.MonthYear).FirstOrDefault(),
GreatDay = g.Select(e=>e.Great).Sum(),
LateEntry = g.Select(e => e.LateEntry).Sum(),
LeftEarly = g.Select(e => e.LateEntry).Sum(),
TotalAttendance = g.Select(e => e.LateEntry).Sum(),
});
到
new ChartModel
{
Date = g.Select(v=>v.MonthYear).FirstOrDefault(),
GreatDay = g.Select(e=>e.Great).Sum(),
LateEntry = g.Select(e => e.LateEntry).Sum(),
LeftEarly = g.Select(e => e.LeftEarly).Sum(),
TotalAttendance = g.Select(e => e.TotalAttendance).Sum(),
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句