我有一个包含员工帐户详细信息的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查询匹配.真的无法弄清楚问题是什么,因为我的解析器是正确的.
您可能没有以小写或没有尾随空格的所有记录状态"活动".
何时accounts是DbSet对象,它使用默认的不区分大小写的配置进行设置.因此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)