2017-12-18 8 views
2

私は数週間これに苦労してきました。 VB.netは匿名の型を使用しているので、私はC#で答えを見つけることができますが、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や日付マジックを入れることはできません。

+0

は、あなただけの 'GroupTime.Scheduled_Start.Date'を使用することができませんか? – DavidG

+0

'DbFunctions.TruncateTime'が必要です。 C#またはVB.NETを使用しているかどうかは関係ありません。 –

+0

dbfunctionsは "匿名型のメンバ名は、引数のない単一の名前または修飾された名前からしか推論できません"と言っています。 – Doonze

答えて

4

通常、あなたはDateTime.Dateプロパティを使用しますが、EF6はそれをサポートせず、tt目的でDbFunctions.TruncateTimeメソッドを使用する必要があります。

また、VB.NETは匿名型の使用を要求していません(ただし、匿名型のメンバの名前はです)。いつグループあなたのケースのように、単一のフィールドによって、あなたは(Group By VB.NET exampleに示すように)、以下、単に使用することができます

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

これはまさに正しいことでした!完璧に働いた!!!!私は10人しかいないと思うし、15人をupvoteする必要がある。誰かがこれを見ているなら、私のためにこれをupvoteしてください!ありがとう!!! – Doonze