перенос запроса суммы linq на. net core 3.1 - PullRequest
0 голосов
/ 26 января 2020

Я мигрирую с. net ядро ​​2.2 на 3.0 и получаю ошибку для запроса linq

        var accountList = someOtherList.Select(x => x.AccountNo).ToList();
        var collectedAmount = await _dbContext.AllocPayments
                .Where(p => accountList.Contains(p.AccountNo))
                .SumAsync(x => x.Amount);

Это дает ошибку:

System.InvalidOperationException: LINQ Выражение «DbSet .Where (a => __accountList_0.Contains (a.AccountNo)) .Sum (a => a.Amount)» не может быть переведено. Либо переписать запрос в форме, которую можно перевести, либо явно переключиться на оценку клиента, вставив вызов либо AsEnumerable (), AsAsyncEnumerable (), ToList (), либо ToListAsyn c (). См. https://go.microsoft.com/fwlink/?linkid=2101038 для получения дополнительной информации.

Я прочитал документацию и могу заставить ее работать, добавив .ToListAsync() и оценив ее в client/.net, но тогда почему это не получается? запрос оценивается на server/sql server?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...