Я пытаюсь запустить следующий запрос, но по какой-то причине 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)
}
EDIT
I've verified in the database that the results are not what they should be. It seems to be adding everything together and not taking into account the Account
criteria that we're looking at.