linq groupby没有时间字段vb.net
问题描述:
我一直在努力这个星期。我似乎可以在C#中找到答案,但不能在vb.net中找到答案,因为VB.net使用的是匿名类型。我可以将我的专栏分组,但我只想要短日期(11/11/11),而不是日期和时间(11/11/11 11:11:11)。这里是我目前得到的:linq groupby没有时间字段vb.net
Dim preSort = SortedTimeline.GroupBy(Function(GroupTime) New With {Key GroupTime.Scheduled_Start})
这只有在时间也匹配时才创建组。而且我不能在密钥上放置任何.tostring或任何日期魔法,因为它是匿名的。
任何想法???
答
通常情况下你会使用DateTime.Date
属性,但EF6不支持它,并利用TAT目的DbFunctions.TruncateTime
方法需要。另外,VB.NET不要求使用匿名类型(尽管我非常肯定有办法指定匿名类型成员名称)。当你按单场像你的情况,你可以使用简单的下面(如Group By VB.NET example所示):
.GroupBy(Function(GroupTime) DbFunctions.TruncateTime(GroupTime.Scheduled_Start))
+0
这完全正确!完美工作!我想我只有10个代表,需要15个代表积极参与。如果有人看到这个请为我加油!谢谢!!! – Doonze
你就不能使用'GroupTime.Scheduled_Start.Date'? – DavidG
'DbFunctions.TruncateTime'就是你需要的。如果您使用C#或VB.NET,则无关紧要。 –
dbfunctions告诉我:“匿名类型成员的名字只能推断弗洛姆单或合格的名字,不带参数”我已经忘了,但走这条道路之前。 – Doonze