.使用lambda和实体框架的SELECT语句

本文关键字:SELECT 语句 框架 实体 lambda 使用 | 更新日期: 2023-09-27 18:24:05

我在这里很难使用.SELECT语句。

这里是我的代码片段;

var payoutsPerLocation = locations.Select(l => l.Payouts);
foreach (var payouts in payoutsPerLocation)
{
    Console.WriteLine(payouts.Sum(pos=>pos.Amount));
}

地点中的位置是一个列表,一个地点有一个或多个支出。我想得到所有的奖金。

上述代码的结果低于

0
0
0
0
0
0

它应该是每个地点的支出金额的总和。我好像没有收到任何付款记录。但当我尝试使用下面的代码时(用于测试我是否得到了付款);

var payoutsPerLocation = locations.FirstOrDefault().Payouts;
foreach (var payout in payoutsPerLocation)
{
    Console.WriteLine(payout.Amout);
}

该地点有支出。你们认为我在这里做错了什么?

感谢您的帮助。

.使用lambda和实体框架的SELECT语句

我不知道它为什么给你零,但你无论如何都不应该在foreach循环中计算Linq表达式。它会导致数据库的往返次数过多。试试这个:

var sumPerLocation = locations.Select(l => l.Payouts.Sum(p => p.Amount));
foreach (var sum in sumPerLocation)
{
    Console.WriteLine(sum);
}