LINQ .Sum()返回不正确的数据

时间:2012-01-12 07:09:48

标签: c# linq entity-framework linq-to-sql

我的数据库表包含以下内容:

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

2 个答案:

答案 0 :(得分:4)

您从查询中预测pa.Count而不是pa2.Count

因此,如果您在范围内有一个pa变量引用Count属性为1的对象,且df.PollAnswers中有两个项目,那么您的查询确实总会返回2

答案 1 :(得分:1)

不是从df.PollAnswers中选择然后执行pa2.Poll.ID,而应该尝试直接从Polls集合中选择(或者它具有的任何名称)。这样,您可能会得到一些重复项,或者您的查询没有意义。