如何在linq C#中使用group by并获取记录列表

时间:2015-01-16 09:45:31

标签: linq sql-to-linq-conversion

我有一个2表,我做一些连接,根据一些要求返回记录列表。 我可以通过查询我的requiremnet来编写一个组并记录这些记录,但我需要在Linq查询中使用相同的组。 我的SQL查询是:

select 
   MiscServiceDesc, 
   sum(PaymentAmount),
   count(PaymentAmount) 
from 
   MiscTransaction MT 
join MiscService MS 
   on MT.MiscServiceID = MS.MiscServiceID 
group by 
  MiscServiceDesc

MiscTransaction和MiscService是我的两个表。

有任何帮助吗? 提前致谢

1 个答案:

答案 0 :(得分:2)

试试这个。我不知道MiscServiceDesc,PaymentAmount,PaymentAmount这些列中的哪些列在MiscTransaction表或MiscService表中,但是如果需要,您可以适当地更改代码。

var result = (from mt in MiscTransaction 
               join ms in MiscService on mt.MiscServiceID equals ms.MiscServiceID
               select new {ms.MiscServiceDesc, mt.PaymentAmount} into lst
               group lst by lst.MiscServiceDesc into gr
               select new {MiscServiceDesc  = gr.Key, Summ = gr.Sum(c=>c.PaymentAmount), Count = gr.Count()}
       ).ToList();