按周和按日期降序排列EF

时间:2017-03-01 23:35:51

标签: c# entity-framework linq date calendar

我查询 dbTable日期记录列表按周分组,而sort the list & nested days in descending date order无效。在SO中有一个按周分组,但不是按照降序对一周的集合和嵌套天数进行排序。

我有一个像这样的表,有一个POdateRecordsTable列表 -

Id | Date | Week# | PO | ContractorId

鉴于DateTime.Now和周一的WeekStarting - 如何对in descdending order ?的记录List of date records by Week进行分组/汇总/排序,对外部周列表和nesteddayslist按降序排列。

POdateRecordsEntity.SingleOrDefault(p => p.PO == "Unpaid" 
                                    && p.Date <= yourTime).
                      .Select(t => new
  {
      Year = SqlFunctions.DatePart("yyyy", t.Date ),
      Week = SqlFunctions.DatePart("ww", t.Date ),
      Hours = SqlFunctions.DatePart("hh", t.Date )
  })
.GroupBy(x => new { x.Year, x.Week} );

失去了类型&amp;返回列表中的字段。即相同类型的POdateRecordsEntity和它不按周分组,因为它不是DateTime扩展

1 个答案:

答案 0 :(得分:1)

如果您想获得按周分组的记录列表以及按日期降序排列的每个列表,您可以尝试:

POdateRecordsEntity.Where(p => p.PO == "Unpaid" 
                                && p.Date <= yourTime).
.GroupBy(x => new { x.Date.Year, x.Week} )
.toDictionary(x => x.key, x => x.OrderByDescending(t=>t.Date).toList());