有人可以帮我解决以下Linq声明吗?我正试图通过Linq连接4个表,按最后一个表分组,并将第一个表的属性加起来。
var payments = (
from payment in db.Payments
join payees in db.cmsMembers on payment.PayeeID equals payees.nodeId
join payeeGroups in db.cmsMember2MemberGroups on payees.nodeId equals payeeGroups.Member
join groups in db.umbracoNodes on payeeGroups.MemberGroup equals groups.id
group groups by new {groups.text, payment} into groupedPayments
select new
{
Group = groupedPayments.Key.text,
Count = groupedPayments.Count(),
Amount = groupedPayments.Sum(?)
}
).ToList();
我遇到的问题是,在groupsPayments.Sum(..)调用中,我只能访问“groups”对象。这适用于组名称和计数方面,但必须在payment.Amount属性上执行SUM。
答案 0 :(得分:1)
我设法解决了我的问题。我没有意识到组声明中的对象将成为生成的组项目中的实际对象。通过将原始语句更改为以下内容:
group payment by groups into groupedPayments
似乎select语句中的groupsPayments.Key的每个实例现在都对应于我所需的支付行。