在数据库上使用LINQ查询执行Sum()

时间:2018-02-20 19:37:15

标签: c# sql database linq select

我正在查询具有以下内容的数据库

表:TimeEntries

  • field1:ProjectName
  • field2:阶段
  • field3:TimeWorked

我要做的是按ProjectName和Phase进行分组,并为每个的TimeWorked求和。

所以,如果我在表中有这个: ProjectName,Phase,Timeworked

  1. Project1 --- 1 --- 3.5
  2. Project1 --- 1 --- 2
  3. Project2 --- 1 --- 1
  4. 我的查询会返回:

    1. PROJECT1 --- 1 --- 5.5
    2. Project2的--- 1 --- 1
    3. 目前这就是我所拥有的:

      var query3 = (from timeEntry in context.TimeEntries
         select new
            {
                ProjectName = timeEntry.ProjectName,
                Phase = timeEntry.Phase,
                LoggedHours = context.TimeEntries.Sum(x => x.TimeWorked)
            });
      

      我不确定自己是否走在正确的轨道上,是否有人可以帮助我?

      以下是数据库表及其数据类型的图片: TimeEntry TableProject Table

1 个答案:

答案 0 :(得分:0)

试试这个

    var result=context.TimeEntries.GroupBy(m=>new {m.Name,m.Phase})
.Select(m=>new {
Name=m.Key.Name,
Phase=m.Key.Phase,
TimeWorked=m.Sum(o=>o.TimeWorked)

});