我的数据库表包含以下内容:
ID PollID Count
1 6 0
2 6 1
显然做一个:SELECT SUM([COUNT]) WHERE POLLID = 6
会返回1
但是,这个LINQ代码返回2。
long totalVoteCount = (from pa2 in df.PollAnswers
where pa2.Poll.ID == pollID
select pa.Count).Sum();
在写这个问题时,我注意到上面的LINQ代码为其他查询返回了错误的数据。我到底错在了什么?我想 SUM COUNT 列中的特定 POLLID 。
答案 0 :(得分:4)
您从查询中预测pa.Count
而不是pa2.Count
。
因此,如果您在范围内有一个pa
变量引用Count
属性为1
的对象,且df.PollAnswers
中有两个项目,那么您的查询确实总会返回2
。
答案 1 :(得分:1)
不是从df.PollAnswers中选择然后执行pa2.Poll.ID,而应该尝试直接从Polls集合中选择(或者它具有的任何名称)。这样,您可能会得到一些重复项,或者您的查询没有意义。