C# LINQ.Sum()返回的数据不正确
我的数据库表包含以下内容:C# LINQ.Sum()返回的数据不正确,c#,linq,entity-framework,linq-to-sql,C#,Linq,Entity Framework,Linq To Sql,我的数据库表包含以下内容: ID PollID Count 1 6 0 2 6 1 显然,在POLLID=6的位置执行:SELECT SUM[COUNT]将返回1 但是,此LINQ代码返回2 long totalVoteCount = (from pa2 in df.PollAnswers where pa2.Poll.ID == pollID select p
ID PollID Count
1 6 0
2 6 1
显然,在POLLID=6的位置执行:SELECT SUM[COUNT]将返回1
但是,此LINQ代码返回2
long totalVoteCount = (from pa2 in df.PollAnswers
where pa2.Poll.ID == pollID
select pa.Count).Sum();
在写这个问题时,我注意到上面的LINQ代码为其他查询返回了不正确的数据。我到底做错了什么?我想对特定POLLID的COUNT列求和。而不是从df.PollAnswers中选择,然后执行pa2.Poll.ID。您应该尝试直接从Polls集合或它的任何名称中选择。这样,您可能会得到一些重复项,或者您的查询根本没有意义。您正在从查询中投影pa.Count,而不是pa2.Count
因此,如果您在作用域中有一个pa变量,它引用了Count属性为1的对象,并且df.PollAnswers中有两个项,那么您的查询将始终返回2。我想select pa.Count是一个输入错误?否则,如果你的作用域中有一个pa变量,它会解释你的问题。哇,这太尴尬了。Frederic发布了这个答案,我会接受的。Lambdas让这些查询对我来说更容易,df.PollAnswers.Wherepa=>pa.PollID==PollID.Sumpa2=>pa2.Count