In der unten stehenden LINQ-Anweisung möchte ich Personen mit einem Prüfungsdatum im Jahr 2010 auswählen. Das Prüfungsdatum wird als Datum / Uhrzeit gespeichert, da das tatsächliche Datum und die Uhrzeit in anderen Anwendungen verwendet werden. Was ist der eleganteste, einfachste und beste Weg, das exzam-Datum mit "2010" zu vergleichen? Oder, sollte ich nur das Testdatum mit 1/1/2010 vergleichen?
%Vor%EDIT # 1
Ich dachte, ich sollte ein Jahr später am Prüfungstermin sehen, aber ich habe es nicht getan. Nachdem ich ein paar Posts gesehen hatte, ging ich zurück und fand das funktioniert ...
%Vor%Warum ist .Value für den Zugriff erforderlich? Die Prüfung ist eine nullbare Datetime.
Sie können einfach die Eigenschaft Year
für DateTime
:
Warum ist .Value erforderlich, um auf .Year zuzugreifen? Die Prüfung ist eine nullbare Datetime.
Genau weil Exam
ein Nullable<DateTime>
ist. Wenn Sie eine Instanz von Nullable<DateTime>
like
Beachten Sie, dass exam
kein DateTime
ist und Sie daher nicht direkt auf die Eigenschaften von DateTime
zugreifen können. Um eine konkrete Instanz von DateTime
zu erhalten, verwenden Sie die Eigenschaft Value
für Nullable<DateTime>
(alle Nullable<T>
s haben diese Eigenschaft), so dass
ist ein DateTime
unter der Annahme, dass exam
nicht null
ist. Sie können also sagen
und natürlich aus Gründen der Kürze
%Vor% Beachten Sie, dass dies ausgelöst wird, wenn exam.HasValue
falsch ist.
Tags und Links entity-framework linq entity-framework-4