Nella seguente istruzione LINQ, desidero selezionare le persone con una data di esame nel 2010. La data dell'esame viene memorizzata come un datetime come la data e l'ora effettive viene utilizzata in altre applicazioni. Qual è il modo più elegante, semplice e migliore per confrontare la data exzam con il solo '2010'. Oppure, dovrei semplicemente confrontare, usando> =, la data dell'esame al 1/1/2010?Utilizzare solo la parte dell'anno di una data per una condizione WHERE
var active = dc.People.Where(x => x.exam >= 2010)
.Select(x => new {x.ContactID, x.FirstName, x.LastName})
);
x.MostRecent == DateTime.Parse("1/1/2010").Year
EDIT # 1
ho pensato di vedere un .year alla data di esame, ma non l'ho fatto. Dopo aver visto un paio di post qui sono tornato e ho trovato questo funziona ...
.Where(x => x.exam.Value.Year == 2010)
Perché .Value necessaria per accedere .year? L'esame è un datetime nullable.
'.Valore' è necessario perché' exam' è un campo nullable nel modello. (Presumo nel tuo database la colonna corrispondente consente NULL.) –
@Scott - Questo è corretto, il DB consente i null in quella colonna. Grazie. – DenaliHardtail