2010-02-08 57 views
0

有人可以帮助我与下面的Linq声明?我试图通过Linq,通过最后一个表加入4个表,并总结第一个属性。Linq总结多个联接

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

我遇到的问题是,在groupedPayments.Sum(..)调用我只能够访问这些“组”对象。对于组名称和计数方面而言,这很好,但必须在payment.Amount属性上执行SUM。

+0

嘿,groupedPayments.Sum(i => i.payment)不起作用? –

回答

1

我设法解决了我的问题。我没有意识到组声明中的对象将成为生成的组项目中的实际对象。通过改变原有的语句如下:

group payment by groups into groupedPayments 

似乎在select语句groupedPayments.Key的每个实例现在对应于支付行这是我需要什么。