【发布时间】:2014-02-05 22:44:55
【问题描述】:
我的代码如下:
void Main()
{
var q = from a in Applicants
where(a.Claims.Any())
select a.Claims.Sum(c => c.TotalClaimAmount());
q.Dump();
}
public static class MyExt
{
public static decimal TotalClaimAmount(this Claim c)
{
var t = c.Accommodations.Sum(a => a.AmountClaimed) +
c.MealAllowances.Sum(ma => ma.AmountClaimed) +
c.Meals.Sum(m => m.AmountClaimed) +
c.Mileages.Sum(mi => mi.AmountClaimed) +
c.Others.Sum(o => o.AmountClaimed) +
c.ParkingTransits.Sum(pt => pt.AmountClaimed) +
c.Travels.Sum(tr => tr.AmountClaimed);
return (decimal)t;
}
}
当我在 LinqPad 中运行它时,会出现以下问题:
InvalidOperationException:无法将表达式 'a.Claims.Sum(c => c.TotalClaimAmount())' 转换为 SQL 并且无法将其视为本地表达式。
请帮帮我。非常感谢
【问题讨论】:
标签: c# linq linq-to-sql linq-to-entities linqpad