Оператор LINQ, эквивалентный запросу суммы в SQL [дубликат]

Aug 19 2020

У меня есть таблица SQL с данными:

UserId   POINTS
121        5
122        6
121        4
122        3
121        1

Для расчета суммы баллов для соответствующего идентификатора пользователя

SELECT SUM(POINTS) FROM TBL_SCORED_POINTS WHERE UserId = 121;

Как я могу преобразовать это в LINQзапрос?

public class ScoredPointModel
    {
        public int UserId { get; set; }        
        public int ScoredPoints { get; set; }                     
    }

В LINQзапросе я должен сделать предложение where динамическим, я имею в виду, что значение предложения where будет исходить от пользователя? Как я могу это сделать?

Ответы

1 LeeEvans Aug 19 2020 at 18:17

Это то, что вы ищете:

var total = ScoredPointModels.Where(spm => spm.UserId == userId).Sum(spm => spm.ScoredPoints);