【发布时间】:2014-01-03 23:12:52
【问题描述】:
由于 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 一样将 group by 链接在一起......但这并没有给我相同的结果。 有什么办法可以做到这一点?我基本上是在尝试过滤掉我的日期的时间部分,并按其他字段分组。
【问题讨论】:
-
您可以尝试将
EntityFunctions与DiffDays功能一起使用,并尝试按某个日期的差异进行分组 -
它不会让我调用一个方法...我已经在使用等效的 DbFunctions.TruncateTime(g.SummaryHour) 但这不适用于匿名类型
-
@KingOfHypocrites 它给了你什么错误?你试过按年、月、日分组吗?
-
创建匿名类型时不能使用方法。
-
然后尝试按
new {x.Year, x.Month, x.Day ....}分组
标签: c# sql linq entity-framework