Ich habe die Datetime-Variable officeStartTime
, die den Datetime-Wert als
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.
Verwenden Sie Methode EntityFunctions.CreateTime :
%Vor%Fließende Syntax:
%Vor% 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!
Tags und Links entity-framework linq entity-framework-4.1