在 Silverlight 的域服务中使用 Linq
本文关键字:Linq 服务 Silverlight | 更新日期: 2023-09-27 18:33:51
问这个问题我有点内疚,因为之前问过一个问题,但我没有得到明确的答案。我正在构建一个 silverlight 程序,我需要在域服务中创建一个 Linq 查询(使用 wcf ria)。我需要计算总和,这是我的代码
int lola = (from c in context.GetTRANSACTIONSQuery()
where ((c.CHART_ACC == transStudID) && (c.sch_year == 13))
select c).Sum();
MessageBox.Show(lola.ToString());
在Sum()
的括号之间,我收到一个错误,说
错误 1 实例参数:无法从"System.ServiceModel.DomainServices.Client.EntityQuery"转换为"System.Collections.Generic.IEnumerable"
我错过了什么??我知道这是语法问题,因为我是 Linq 的新手。请谢谢!
你为 Sum() 加了什么?你能试试吗:
int lola = (from c in context.GetTRANSACTIONSQuery()
where ((c.CHART_ACC == transStudID) && (c.sch_year == 13))
select c.PROPERTYTHATYOUWANTTOADDUP).Sum();
或者,也许您想计算有多少项目与您的查询匹配?
int lola = (from c in context.GetTRANSACTIONSQuery()
where ((c.CHART_ACC == transStudID) && (c.sch_year == 13))
select c).Count();
编辑:
因此,由于您要添加 AMOUNT 属性:
decimal lola = (from c in context.GetTRANSACTIONSQuery()
where ((c.CHART_ACC == transStudID) && (c.sch_year == 13))
select (decimal)c.AMOUNT).Sum();
您还可以确保 c.AMOUNT 永远不会为空,这样将来就不会遇到错误:
decimal lola = (from c in context.GetTRANSACTIONSQuery()
where ((c.CHART_ACC == transStudID) && (c.sch_year == 13) && (c.AMOUNT != null))
select (decimal)c.AMOUNT).Sum();