請有人協助下面的查詢。我試圖選擇每個客戶端的所有收據總和。但是,我的select部分中的'Total ='子查詢不起作用,並且出現以下錯誤:使用linq執行求和子查詢
無法創建類型爲'AppName.Domain.Entities.AccountingEntry'的常量值。只有原始類型或枚舉類型在此上下文中受支持。
我已經嘗試過在查詢後做一個ToList(),但這會導致同樣的問題。使用linq選擇Sum作爲子查詢的標準方法是什麼?
var receipts = (from ae in repo.AccountingEntries
join c in repo.Clients on ae.ClientId equals c.ClientId
join m in repo.Memberships on c.MembershipId equals m.MembershipId
where
(ae.EntryDate <= start) &&
(ae.ClientId != null) &&
(ae.AccountingEntryTypeId == (byte)Shared.AccountingEntryTypes.Receipt)
select new AppName.Reports.Clients.AgeAnalysis.Receipt
{
ClientId = (Guid)ae.ClientId,
Client = c.FirstName + " " + c.LastName,
Membership = c.Membership.Name,
Total = (from ae2 in repo.AccountingEntries where ae2.ClientId == ae.ClientId select ae2.Total).Sum()
});
感謝, 加里
什麼類型是Total? – 2013-03-26 13:28:11
查詢沒有計算總數? – 2013-03-26 13:34:09
Total是一個小數,是的,沒有Total子查詢部分查詢運行正常。 – Gary 2013-03-27 09:41:53