gpt4 book ai didi

c# - 尝试使用 LINQ 方法语法将 GroupBy 与多个属性一起使用时出现问题

转载 作者:太空狗 更新时间:2023-10-30 00:40:43 24 4
gpt4 key购买 nike

我有以下数据:

Type (enum)   Date (DateTime)       Count (int)

Red 2014-07-27 11:00:00 1
Red 2014-07-27 10:00:00 1
Red 2014-07-27 09:00:00 1
Blue 2014-07-27 11:00:00 1
Blue 2014-07-27 10:00:00 1
Blue 2014-07-27 09:00:00 1

我想先按 Type 分组,然后对每一天的 Count 求和。

我想要的输出是:

Type (enum)   Date (DateTime)       Count (int)

Red 2014-07-27 3
Blue 2014-07-27 3

下面的代码将按我想要的方式按天分组,但我不知道如何将按类型 和按日期 的分组结合起来:

_entityContext.Statistics.
.GroupBy(s => new { s.DateTime.Year, s.DateTime.Month, s.DateTime.Day})

我现在已经为此苦苦挣扎了一段时间,最后我遇到了复杂的 IGrouping 结构,现在有点卡住了。 Google 引导我使用查询语法结构,但我真的很想知道这是否可以使用方法语法。最后我知道查询语法被翻译成方法语法所以它应该是可能的?

谁能引导我朝着正确的方向前进?

注意:LINQ TO Entities 不支持访问“DateTime”上的“Date”属性。您将得到的异常是:“LINQ to Entities 不支持指定的类型成员‘Date’。仅支持初始化程序、实体成员和实体导航属性”

最佳答案

只需将 Type 添加到您的 GroupBy 即可:

_entityContext.Statistics.GroupBy(
// Define the key for the GroupBy to be Type and the Day
s => new { s.Type, s.Date.Year, s.Date.Month, s.Date.Day},
// Reduce each group to just the key and the sum of its Count values
(key, ss) => new { key, count = ss.Sum(s => s.Count) }
);

经测试可与 LINQ-to-Entities 一起使用。

关于c# - 尝试使用 LINQ 方法语法将 GroupBy 与多个属性一起使用时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25086917/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com