Erhalte nur Zeit von datetime

7

Ich habe die Datetime-Variable officeStartTime , die den Datetime-Wert als

enthält

officeStartTime = {9/24/2013 10:00:00 AM}

und ich habe das Modul CHECKINOUT , das userid , checktime und andere Eigenschaften enthält.

Nun möchte ich eine Liste von CHECKINOUT -Einträgen erhalten, deren Zeitteil von checktime größer ist als der Zeitteil von officeStartTime .

Ich versuche es:

var checklist= con.CHECKINOUTs.Where(x => x.CHECKTIME.TimeOfDay > officeStartTime.TimeOfDay);

checklist enthält den folgenden Fehler:

{"The specified type member 'TimeOfDay' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported."} .

Es wird TimeOfDay in LINQ to Entities nicht unterstützt. Wenn ja, wie kann ich in LINQ einen Teil der datetime auf Zeit prüfen? Gibt es einen anderen Weg, dies zu tun? Bitte schlage mir vor, was ich machen soll.

Danke.

    
link2jagann 30.09.2013, 11:26
quelle

3 Antworten

11

Verwenden Sie

%Vor%

von Kanonische Funktionen für Datum und Uhrzeit

    
MikroDel 30.09.2013, 11:28
quelle
9

Verwenden Sie Methode EntityFunctions.CreateTime :

%Vor%

Fließende Syntax:

%Vor%     
Sergey Berezovskiy 30.09.2013 11:36
quelle
4

Genau wie ein Hinweis, wenn Sie Entity Framework Version 6.0.0.0 verwenden, ist EntityFunctions OUTDATED .

Die gleiche Funktionalität kann unter DbFunctions gefunden werden.

Also für Ihre Antwort, EF6 verwendend, würde es so aussehen:

%Vor%

Hoffe, das hilft!

    
M12 Bennett 02.09.2016 13:24
quelle