在Linq中分组到具有聚合列的sql

时间:2016-03-13 08:08:18

标签: c# linq

我很难将简单的T-SQL语句转换为LINQ语句。

select UserName,SUM(Value) FROM UserValues Group By username

到目前为止,我已经在C#中了:

var TcountValues = _context.UserValues.GroupBy(g=>g.UserName);

我不确定如果我想在此之后使用select来获取我的用户名和聚合函数。在这一点上,我甚至不确定我是否应该在LINQ中使用group by方法。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

var TcountValues = _context.UserValues
                           .GroupBy(g=>g.UserName)
                           .Select(x=> new 
                           {
                                UserName = x.Key, 
                                Sum = x.Sum(y=>y.Value)
                           });

最好为TcountValues创建一个类,否则您将拥有一组匿名类型,并且您无法以外部强类型方式访问此对象的属性当前范围(本例中的方法)