linq to SQL с агрегатными функциями - PullRequest
1 голос
/ 13 июня 2011

Я потратил много времени, пытаясь преобразовать приведенный ниже запрос в linq для сущностей.

SELECT ItemCode, AVG([Count]) As [Count]
FROM [tblHistory]
GROUP BY ItemCode
ORDER BY [Count] desc

В моей структуре сущностей edmx у меня есть tblHistory с полями

{ ItemCode(int), Count(int), Date(datetime) }

Я могу группировать по одному столбцу и отображать этот конкретный столбец (в данном случае Count), но доступ к ItemCode в том же контексте доставляет мне проблемы.

Один из методов, которые я пытался использовать, приведен ниже:

 var query = from p in Context.tblHistories
             group p by p.ItemCode into g
             select new tblHistory
                        {
                            ItemCode = g.Key,
                            Count = from c in g select new { c.Count }
                        };

Пожалуйста, дайте мне знать, требуется ли дополнительная информация для тех, кто знает об этом, как я с радостью предоставлю.

1 Ответ

3 голосов
/ 14 июня 2011
tblHistories.GroupBy(p => p.ItemCode)
         .Select(g => new { ItemCode = g.Key, Count = g.Average (c => c.Count)})
         .OrderByDescending(x => x.Count)
         .AsEnumerable()
         .Select(x => new tblHistory{ ItemCode = x.ItemCode, Count = (int)x.Count })
...