使用 LINQ 中的多个表进行分组

问题描述

对 LINQ 的 sql 查询:两者都粘贴在这里,在 LINQ 中遇到问题 - 需要建议:

select bm.MachineId,al.AlarmId,am.AlarmName,count(al.AlarmId)AlarmCount 
from BatchMachineWise bm 
join Alarmlog al on bm.MachineId = al.MachineId
join Alarm am on am.AlarmId = al.AlarmId
where bm.BatchId = 12476
group by bm.MachineId,am.AlarmName

sql o/p

LINQ query

getting the error

解决方法

GroupBy 返回 IGrouping<TKey,TElement> 接口,其中 Key property 应该用于访问用于分组的字段:

select new AlarmSummary
{
    MachineId = gr.Key.MachineId,AlarmId = gr.Key.AlarmId,AlarmName = gr.Key.AlarmName
    ....
}