我有以下查询,将一堆打印机分组,然后计算停机时间。我想要做的是获得每组中有多少台打印机。我不确定是否需要运行两个查询,还是可以在一个查询中完成此操作?
查询:
var records = (from r in SharePoint.Records
group r by new
{
Printer = getValue(r.Values["ows_printer_id_x003a_Device"]),
} into g
select new
{
Printers = g.Key.Printer,
CurrentHours = g.Sum(x => getDownTime(x.Values["ows_Downtime"])),
// Total = g.Count()
//CTDHours = g.Sum(x => x.Field<int>("CurrentHours") + x.Field<int>("CTDHours"))
});
答案 0 :(得分:0)
var records = (from r in SharePoint.Records
group r by new
{
Printer = getValue(r.Values["ows_printer_id_x003a_Device"]),
} into g
select new
{
Printers = g.Key.Printer,
CurrentHours = g.Sum(x => getDownTime(x.Values["ows_Downtime"])),
Total = g.Count()
});
Total = g.Count
应该有效。
我很好奇为什么你在这里使用getValue()
,我认为这就是你的问题所在。 Printer = r.ows_printer_id_x003a_Device
不起作用吗?您是否验证了“ows_printer_id_x003a_Device”成员中的数据,并且该部分查询是否产生了您想要的分组?尝试使用LinqPad将其分解。