2012-12-19 53 views
0

我在LINQ查詢這樣如何在多個表應用組通過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 

           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 

           }; 

現在我需要的服務和GROUP_NAME數與組SERVICEID。 請幫幫我嗎?

+0

顯示你的班級模型。應該使用導航屬性進行連接。我們不知道你有。另外:你嘗試了什麼? –

+0

我已編輯我的查詢。有一看可能是這有助於你瞭解問題。 –

回答

0

這是沒有測試,但請嘗試..我希望它可以幫助你,並得到一些想法如何分組和按linq計數。欲瞭解更多詳情linq + C# + group by + count

 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() 
        };