正如评论中所建议的那样,在这里生成SQL语句可能更有效,但如果您想停留在EF和LINQ领域,您可以这样做:
var result = await _dbContext.StripeTransfers
.Where(p => p.StripePayoutId == payout.StripePayoutId)
.GroupBy(p => p.StripePayoutId)
.Select(g => new
{
GrossAmountSum = g.Sum(p => p.GrossAmount),
TokensSum = g.Sum(p => p.Tokens)
})
.FirstOrDefaultAsync();
// Here you can do whatever you want with variables.
var grossAmount = result?.GrossAmountSum ?? 0;
var totalTokens = result?.TokensSum ?? 0;