linq groupby没有时间字段vb.net

时间:2017-12-18 11:58:18

标签: vb.net entity-framework linq

我几周来一直在努力解决这个问题。我似乎可以在C#中找到答案而不是vb.net,因为VB.net使用的是匿名类型。我可以对我的专栏进行分组,但我想要的是短日期(11/11/11),而不是日期和时间(11/11/11 11:11:11)。这是我目前所拥有的:

Dim preSort = SortedTimeline.GroupBy(Function(GroupTime) New With {Key GroupTime.Scheduled_Start}) 

仅当时间也匹配时,才会创建组。由于它是匿名的,我不能在密钥上添加任何.tostring或任何日期魔法。

任何想法???

1 个答案:

答案 0 :(得分:4)

通常你会使用DateTime.Date属性,但EF6不支持它,并且需要使用DbFunctions.TruncateTime方法。

此外,VB.NET不要求使用匿名类型(尽管我很确定有办法指定匿名类型成员 name )。按照您的情况按单个字段进行分组时,您可以使用以下内容(如Group By VB.NET example所示):

.GroupBy(Function(GroupTime) DbFunctions.TruncateTime(GroupTime.Scheduled_Start))