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

本文关键字:数据 不正确 返回 Sum LINQ | 更新日期: 2023-09-27 18:20:08

我的数据库表有以下内容:

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特定POLLIDCOUNT列。

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

您从查询中投影的是pa.Count,而不是pa2.Count

因此,如果作用域中有一个pa变量,该变量引用的对象的Count属性为1,并且df.PollAnswers中有两个项,则查询将始终返回2

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