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

Kin*_*tes 2 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);
Run Code Online (Sandbox Code Playgroud)

我尝试像groupby.groupby一样将这个组织链接起来......但这并没有给我相同的结果.我能用这种方式做到吗?我基本上试图过滤掉我的约会的时间部分和其他领域的分组.

Ger*_*old 8

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

kw.GroupBy(x => new { 
                      Date = DbFunctions.TruncateTime(g.SummaryHour),
                      x.KeywordID
                    })
Run Code Online (Sandbox Code Playgroud)