如何在 linq C# 中使用 group by 并获取记录列表
how to use group by in linq C# and fetch the list of records
我有 2 个表,我根据某些要求对 return 记录列表进行了一些连接。
我可以通过查询为我的 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 是我的两个表。
有什么帮助吗?
提前致谢
试试这个。我不知道 MiscServiceDesc、PaymentAmount、PaymentAmount 这些列中的哪些列在 MiscTransaction table 或 MiscService table 中,但如果需要,您可以适当更改代码。
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();
我有 2 个表,我根据某些要求对 return 记录列表进行了一些连接。 我可以通过查询为我的 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 是我的两个表。
有什么帮助吗? 提前致谢
试试这个。我不知道 MiscServiceDesc、PaymentAmount、PaymentAmount 这些列中的哪些列在 MiscTransaction table 或 MiscService table 中,但如果需要,您可以适当更改代码。
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();