【发布时间】:2013-03-27 04:43:32
【问题描述】:
请有人协助解决以下问题。我正在尝试选择每个客户的所有收据的总和。但是我的选择部分中的“Total =”子查询不起作用,我收到以下错误:
无法创建“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是什么类型? -
查询不计算总数?
-
Total 是小数,是的,没有 Total 子查询部分,查询运行良好。
标签: linq entity-framework subquery