LINQ针对XML和Db提供了不同的结果

Ada*_*dam 0 c# linq

我有一个包含员工帐户详细信息的xml.我试图用LINQ计算总和.我有以下查询:

var totalSum = (from account in accounts
               where account.Status == "active"
               select account.Balance).Sum();
Run Code Online (Sandbox Code Playgroud)

我还继续将数据解析为数据库表.当我针对我的xml运行时,我有不同的结果,当我对着我的数据库运行时,我有一个不同的结果.我检查了解析器,并正确解析了所有条目.

我还运行了一个SQL查询来计算Sum,并且它与db中的LINQ查询匹配.真的无法弄清楚问题是什么,因为我的解析器是正确的.

For*_*Two 7

您可能没有以小写或没有尾随空格的所有记录状态"活动".

何时accountsDbSet对象,它使用默认的不区分大小写的配置进行设置.因此where表达式仍将匹配"Active"或"ACTIVE".但是,如果accounts在内存中它将不匹配,因此您得到不同的结果.

这应该工作

var totalSum = (from account in accounts
        where account.Status.Trim().ToLower() == "active"
        select account.Balance).Sum();
Run Code Online (Sandbox Code Playgroud)