Linq按日期分组使用多个按字段分组

时间:2013-12-09 20:46:47

标签: c# sql linq entity-framework

由于linq不允许你在linq查询中使用Date()方法,我读到了使用DbFunctions.TruncateTime,它可以正常工作,直到你尝试在匿名类型中使用它,这是我需要做什么才能在多个领域进行分组。我也尝试使用我的字段的日期部分创建一个新的日期时间,但这也不起作用(再次出现相同的错误)。

我的查询看起来像

kw = kw
    .GroupBy(x => new { DbFunctions.TruncateTime(g.SummaryHour), x.KeywordID })
    .SelectMany(x => x)
    .OrderByDescending(x => x.KeywordID);

我尝试像groupby.groupby一样将这个组织链接在一起......但是这并没有给我相同的结果。 我能以任何方式实现这一目标吗?我基本上试图过滤掉我的约会的时间部分和其他领域的分组。

1 个答案:

答案 0 :(得分:8)

当然可以使用匿名类型的方法,但必须提供属性的名称,因为编译器没有任何可以从中派生的东西:

kw.GroupBy(x => new { 
                      Date = DbFunctions.TruncateTime(g.SummaryHour),
                      x.KeywordID
                    })