【问题标题】:Performing a Sum() with LINQ query on database在数据库上使用 LINQ 查询执行 Sum()
【发布时间】:2018-07-31 06:28:09
【问题描述】:

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

表:时间条目

  • 字段 1:项目名称
  • field2:阶段
  • 字段 3:工作时间

我要做的是按 ProjectName 和 Phase 分组,然后 sum() 每个 TimeWorked。

因此,如果我在表格中列出以下内容: 项目名称、阶段、工时

  1. 项目1--- 1 --- 3.5
  2. 项目1 --- 1 --- 2
  3. 项目2 --- 1 --- 1

我的查询将返回:

  1. 项目1---1---5.5
  2. 项目2---1---1

目前这是我所拥有的:

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

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

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

【问题讨论】:

标签: c# sql database linq select


【解决方案1】:

试试这个

    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)

});

【讨论】:

  • 完美!太感谢了。你能解释一下你是如何得出这个结论的吗?我还在努力学习 LINQ。
猜你喜欢
  • 1970-01-01
  • 2020-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多