将带有COUNT的sql转换为LINQ

时间:2014-05-30 04:57:03

标签: sql sql-server linq

我似乎无法找到将此sql转换为LINQ的方法。 它将为我提供所有唯一的行,并计算每行中NumberOf字段的值。

SELECT Id, SupId, Text, ExternalId, NumberOf, count(s.NumberOf)
FROM Stock s
GROUP BY s.Id, s.SupId, s.Text, s.ExternalId, s.NumberOf

任何人都可以帮我吗?

2 个答案:

答案 0 :(得分:1)

你必须这样做:

var consolidatedChildren =
    from s in Stock
    group s by new
    {
        s.Id, 
        s.SupId, 
        s.Text, 
        s.ExternalId, 
        s.NumberOf
    } into gs
    select new
    {
        Id = gs.Key.School,
        SupId =gs.Key.SupId, 
        Text = gs.Key.Text, 
        ExternalId =gs.Key.ExternalId, 
        NumberOf =gs.Key.NumberOf,
        Count = gs.Count()  //--------------> Count of Rows
    };

答案 1 :(得分:0)

按匿名类对数据进行分组。

var query = from s in Stock 
            group s by new {s.Id, s.SupId, s.Text, s.ExternalId} into g
            select new {g.Key.Id, g.Key.SupId, g.Key.Text, g.Key.ExternalId, Count = g.Count()};