Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当使用多个分组依据字段时,Linq分组依据日期_C#_Sql_Linq_Entity Framework - Fatal编程技术网

C# 当使用多个分组依据字段时,Linq分组依据日期

C# 当使用多个分组依据字段时,Linq分组依据日期,c#,sql,linq,entity-framework,C#,Sql,Linq,Entity Framework,由于linq不允许您在linq查询中使用Date()方法,我阅读了关于使用DbFunctions.TruncateTime的内容,在您尝试在匿名类型中使用它之前,它工作得很好,这是我在多个字段上分组时需要做的事情。我还尝试仅使用字段的日期部分创建一个新的日期时间,但这也不起作用(同样出现相同的错误) 我的问题看起来像 kw = kw .GroupBy(x => new { DbFunctions.TruncateTime(g.SummaryHour), x.KeywordID })

由于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链接在一起groupby。。。但这并没有给我同样的结果我有什么办法可以做到这一点?我基本上也在尝试通过其他字段过滤掉日期和组的时间部分。

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

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

您可以尝试使用它的
DiffDays
function,并尝试按不同的日期分组。它不允许我调用方法。。。我已经在使用等效的DbFunctions.TruncateTime(g.SummaryHour),但这不适用于匿名types@KingOfHypocrites它给了你什么错误?您是否尝试按年、月、日分组?创建匿名类型时无法使用方法。然后尝试按
new{x.year、x.month、x.day…}
Bazinga分组。那是一张神奇的票。