我正在尝试运行以下查询,但由于某种原因MemberTransactionCount
,并且NonMemberTransactionCount
以完全相同的值返回。这些.Where()
条款似乎没有像我们期望的那样起作用。
希望有人能指出我可能出错的地方。
from trans in transactions
orderby trans.TransactionDate.Year , trans.TransactionDate.Month
group trans by new {trans.TransactionDate.Year, trans.TransactionDate.Month}
into grp
select new MemberTransactions
{
Month = string.Format("{0}/{1}", grp.Key.Month, grp.Key.Year),
MemberTransactionCount =
grp.Where(x => x.Account.Id != Guid.Empty || x.CardNumber != null)
.Sum(x => x.AmountSpent),
NonMemberTransactionCount =
grp.Where(x => x.Account.Id == Guid.Empty && x.CardNumber == null)
.Sum(x => x.AmountSpent)
}
编辑
我已经在数据库中验证了结果不是他们应该的。它似乎将所有内容加在一起,而没有考虑到Account
我们正在研究的标准。