如何在linq中对多个表应用GROUPBY
我在linq有这样的疑问如何在linq中对多个表应用GROUPBY,linq,c#-4.0,linq-to-sql,linq-to-entities,Linq,C# 4.0,Linq To Sql,Linq To Entities,我在linq有这样的疑问 var result = from item1 in context.ServicePriceInsertData join item2 in context.GroupMasterInsert on item1.G_Id equals item2.Group_Id j
var result = from item1 in context.ServicePriceInsertData
join item2 in context.GroupMasterInsert
on item1.G_Id equals item2.Group_Id
join item3 in context.EmployeeServices
on item1.Service_Id equals item3.E_ServiceId
into dept
from item4 in dept.DefaultIfEmpty()
select new
{
Service_Name = item1.S_Description,
Group_Name = item2.Group_Name,
ServiceId = item4.E_Id == null ? 1 : item4.E_Id
};
现在我需要按服务和组名称分组计算ServiceId。
请帮帮我?这没有经过测试,但请尝试。。我希望它能帮助你,让你了解如何在linq中分组和计数。欲知详情
展示你的班级模型。连接应使用导航属性完成。我们不知道你有哪一个。另外:你尝试了什么?我已经编辑了我的查询。看一看可能会帮助你理解这个问题。
var result = from item1 in context.ServicePriceInsertData
join item2 in context.GroupMasterInsert on item1.G_Id equals item2.Group_Id
join item3 in context.EmployeeServices on item1.Service_Id equals item3.E_ServiceId
group new { item1.S_Description, item2.Group_Name, item1 } by new { item.S_Description } into g
select new
{
Service_Name = g.Key.S_Description,
Group_Name = g.Key.Group_Name,
Counted = (int?)g.Count()
};