Linq, который объединяет различные идентификаторы - PullRequest
0 голосов
/ 30 мая 2019

У меня проблемы с получением правильного запроса Linq для следующей проблемы: у меня есть список <> точек рассказа, который содержит следующие данные:

ParentID    TaskID      Points
--------    ------    -----------
    1         100          2
    1         101          1
    1         103          1
    2         102          1
    2         104          4
    3         105          1

Я ищу, чтобы получить список различныхParentID с совокупным количеством StoryPoints:

ParentID    Count
--------    -----
   1          4
   2          5
   3          1

Я пробовал этот блок, но синтаксис выдает ошибку:

var storytaskpoints =
                        from u in storypoints
                        group u by u.ParentID into g
                        select new
                        {
                            ParentID = g.Key,
                            Count = (from u in g select u.Points).Count();
                        }

Мой класс для StoryTaskPoint:

class StoryTaskPoint
    {
        public int ParentID { get; set; }
        public int Points { get; set; }
        public int TaskID { get; set; }

        public StoryTaskPoint()
        { }

        StoryTaskPoint(
            int taskID,
            int parentID,
            int points)
        {
            TaskID = taskID;
            ParentID = parentID;
            Points = points;
        }
    }

Любая помощь будет оценена ....

1 Ответ

1 голос
/ 30 мая 2019
 from u in storypoints
                        group u by u.ParentID into g
                        select new
                        {
                            ParentID = g.Key,
                            Count = g.Sum(gg=>gg.Points)
                        }

Используйте .Sum вместо .Count

...