C# 中的 Group By Sum Linq to SQL

2024-01-15

确实坚持使用 Linq to SQL 分组和求和,到处搜索,但我还不够了解,无法将其他解决方案应用到我自己的解决方案中。

我的数据库中有一个名为 view_ProjectTimeSummary 的视图,它具有以下字段:

string_UserDescription
string_ProjectDescription
datetime_Date
double_Hours

我有一个方法,它接受起始日期和起始日期参数,并首先创建此 List:

List<view_UserTimeSummary> view_UserTimeSummaryToReturn = 
             (from linqtable_UserTimeSummaryView
              in datacontext_UserTimeSummary.GetTable<view_UserTimeSummary>()
              where linqtable_UserTimeSummaryView.datetime_Week <= datetime_To
              && linqtable_UserTimeSummaryView.datetime_Week >= datetime_From
              select linqtable_UserTimeSummaryView).ToList<view_UserTimeSummary>();

在返回列表(用作 datagridview 的数据源)之前,我使用同名参数过滤 string_UserDescription 字段:

if (string_UserDescription != "")
        {
            view_UserTimeSummaryToReturn = 
                        (from c in view_UserTimeSummaryToReturn
                         where c.string_UserDescription == string_UserDescription
                         select c).ToList<view_UserTimeSummary>();
        }

return view_UserTimeSummaryToReturn;

如何操作生成的 List 以显示sum该用户和项目的 double_Hours 字段在“开始”和“结束”日期参数之间的值(而不是每个日期的单独条目)?

例如具有以下字段的 List:

string_UserDescription
string_ProjectDescription
double_SumOfHoursBetweenToAndFromDate

我是否正确,这意味着我必须返回不同类型的 List (因为它的字段比 view_UserTimeSummary 少)?

我已经读过,为了得到总和,它类似于“group / by / into b”,但通过查看其他解决方案不明白这种语法是如何工作的......有人可以帮助我吗?

谢谢 史蒂夫


首先定义一个类来保存结果:

public class GroupedRow
{
  public string UserDescription {get;set;}
  public string ProjectDescription {get;set;}
  public double SumOfHoursBetweenToAndFromDate {get;set;}
}

由于您已经应用了过滤,因此唯一要做的就是分组。

List<GroupedRow> result =
(
  from row in source
  group row by new { row.UserDescription, row.ProjectDescription } into g
  select new GroupedRow()
  {
    UserDescription = g.Key.UserDescription,
    ProjectDescription = g.Key.ProjectDescription,
    SumOfHoursBetweenToAndFromDate = g.Sum(x => x.Hours)
  }
).ToList();

(或其他语法)

List<GroupedRow> result = source
  .GroupBy(row => new {row.UserDescription, row.ProjectDescription })
  .Select(g => new GroupedRow()
  {
    UserDescription = g.Key.UserDescription,
    ProjectDescription = g.Key.ProjectDescription,
    SumOfHoursBetweenToAndFromDate = g.Sum(x => x.Hours)
  })
  .ToList();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 中的 Group By Sum Linq to SQL 的相关文章

随机推荐

  • 使用 python w/rest api 与 Azure Key Vault 交互

    我对使用最近发布的新服务在 Azure 中进行秘密管理非常感兴趣 我找到了一些示例指南 介绍了如何通过 powershell cmdlet 和 C 与 Key Vault 进行交互 但是还没有找到太多关于开始使用其余 API 的信息 我特别
  • 类型“JavaCompile”属性“options.compilerArgumentProviders.apt$0.name”缺少输入或输出注释。升级到Gradle 7后出现错误

    升级到 Gradle 7 0 并进行构建后 我遇到以下失败 gt Task compileJava FAILED FAILURE Build failed with an exception What went wrong Some pro
  • 调整火狐浏览器中输入类型=“文件”浏览按钮的大小?

    无论如何 是否可以使用CSS或JS来调整firefox中输入类型 文件 浏览按钮的大小 我知道您无法更改按钮的文本 但我需要做的就是使该按钮在 Firefox 中更宽 所以使用 moz css 规则将是完美的 出于安全原因 文件输入按钮的样
  • 在Keras中编译模型后如何动态冻结权重?

    我想在 Keras 中训练 GAN 我的最终目标是开始 但我从最简单的目标开始 理解如何冷冻在这里 适当的权重是必要的 这就是我正在努力解决的问题 在生成器训练期间 鉴别器权重可能不会更新 我想freeze and unfreeze判别器交
  • 使用 libcurl 链接程序时出现未解析的符号

    我知道这是编程问题 但我只是很沮丧地试图找出我做错了什么 我使用的是 Visual Studio 2010 并遵循此处的所有步骤 http curl haxx se libcurl c visual studio pdf http curl
  • .NET 基准测试框架

    是否有用于编写微基准的 NET 框架 例如Japex https japex dev java net or this http ellipticgroup com html benchmarkingArticle html 两者都适用于J
  • Android GCM PHP 未经授权 401 错误

    最近我的 GCM 推送消息通知不再起作用 我没有更改任何内容 在我的 Google API 控制台中 如果白名单 IP 地址 我已经注册了我的专用服务器的 IPV6 但是当我尝试访问 GCM 服务时 我总是收到错误 未经授权 错误401 也
  • 有哪些例子可以说明在程序中使用括号会降低可读性?

    我一直认为括号提高了可读性 但在我的教科书中有这样一句话 使用括号会极大地降低程序的可读性 有人有例子吗 我可以找到很多反例lack括号降低了可读性 但我能想到的作者可能的意思的唯一例子是这样的 if a null a isSomethin
  • 如何在(Android)机顶盒上的 Chrome 中显示 FPS 仪表?

    我想在机顶盒 android 上的 Chrome 中使用 HTML5 标签显示视频的 FPS 在 Chrome 29 中 我可以使用chrome flags show fps counter使用 FPS 计 但是最新版本 50 我再也找不到
  • 安卓同屏分辨率

    在Android中 我需要相同的分辨率Default WVGA800 HVGA QVGA所有模拟器都意味着模拟器的大小现在不重要我有这个xml file我需要固定底部标签栏的大小 我该怎么办 现在我面临的问题是 我必须在底部为标签栏留出空间
  • 在 ASP.NET MVC 3 中使用 HtmlHelper 获取当前视图的 URL

    我问类似的问题here https stackoverflow com questions 10069687 use htmlhelper to get action in beginform method of asp net mvc 3
  • 当协方差矩阵为零时,如何在 R 中使用 prcomp () 函数?

    使用时princomp 在R函数中 遇到以下错误 covariance matrix is not non negative definite 我认为 这是由于协方差矩阵中的某些值为零 实际上接近于零 但在舍入期间变为零 当协方差矩阵包含零
  • 如何在 JPA/hibernate 中按带有“_”下划线的属性进行排序?

    JPA 默认按 拆分我的排序属性 因此它会抛出 找不到属性 异常 如果我从变量中删除下划线 它就可以正常工作 但我只想将 保留在我的实体属性中 我该怎么办 多变的 Column name CREATE TIME private LocalD
  • ASP.NET MVC - 仅限图像 + 经过身份验证的用户

    是否有可能以某种方式只允许经过身份验证的用户查看某些图像 我目前正在构建一个网络画廊 我不希望未经身份验证的用户能够看到这些图像 您可以将这些图像放在服务器上用户无权访问的某个位置 例如 App Data文件夹 以防止直接访问它们 然后使用
  • 在 R igraph 中使用组创建变量

    以下是我的生殖示例代码 sender code lt c 12 1 6 19 7 8 3 17 13 10 4 9 2 5 15 11 16 20 14 18 receiver code lt c 20 16 7 3 4 11 8 2 10
  • 使用 DSAPI 重写 URL

    我需要重写网址 即 当用户发送 url1 请求时 我们将向 url2 发出请求 url1 不会在浏览器中更改 用户不应该知道任何事情 我环顾四周 除了 DSAPI 过滤器之外没有找到其他解决方案 DSAPI 可以满足我的需要 但是由于经验不
  • MongoDB - 查找与未知字段键的特定条件匹配的文档

    如何查询 MongoDB 集合以查找具有如下结构的文档 这些文档有一个名为thing这是一个子文档 该字段的键是 ID 号的形式 它将一般不为人所知由编写查询的人 使点表示法变得困难 我认为不可能 id 3 id2 234 thing 23
  • 如何保护 APK 中包含的信息?

    我假设有人构建了一个 APK 反编译器 保护敏感信息 例如后端数据库的身份验证参数 的最佳实践是什么 我想某种中间件可以工作 但不能提高速度 什么是 正确的方法 如果您正在编写 Android 应用程序并使用 AWS 强烈建议您查看 htt
  • 使用bulk_save_objects获取插入的主键ID

    使用后如何获取插入的Id 生成的主键 session bulk save objects 我试过这个 for x in y obj Post obj list append obj session bulk save objects obj
  • C# 中的 Group By Sum Linq to SQL

    确实坚持使用 Linq to SQL 分组和求和 到处搜索 但我还不够了解 无法将其他解决方案应用到我自己的解决方案中 我的数据库中有一个名为 view ProjectTimeSummary 的视图 它具有以下字段 string UserD