我想得到orders表中balance列的总和,我使用了以下linq命令,但是我得到了一个错误:
序列包含多个元素
说明:在执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误以及代码中错误来源的详细信息。
例外详细信息:系统操作无效异常:序列包含多个元素
来源错误:
第101行:int term =转换为Int32(会话["termId"]);
第一百零二行:
第103行:var course =上下文.课程.单个或默认(s =〉s.术语Id ==术语);
第104行:double n3 =上下文.订单.其中(w =〉w.课程Id ==课程. Id).求和(o =〉o.余额);
第105行:var config =上下文.配置.第一个(f =〉f.账户_Id == id);
1条答案
按热度按时间q3qa4bjr1#
我相信您得到的是第103行(
SingleOrDefault
)的错误,而不是第104行(Sum
)。如果序列中有多个匹配元素,
SingleOrDefault
将抛出异常。(如果没有匹配元素,则返回default(Orders)
)。也许你指的是
FirstOrDefault
,它只返回第一个匹配项,忽略其余项?(它的运行速度也会快一点)。