En la declaración LINQ siguiente, deseo seleccionar personas con una fecha de examen en 2010. La fecha del examen se almacena como fecha y hora, como la fecha y hora reales otras aplicaciones. ¿Cuál es la forma más elegante, más fácil y mejor para comparar la fecha de exzam con solo '2010'? O, ¿debería simplemente comparar, usando> =, la fecha del examen al 1/1/2010?Usar solo el año como parte de una fecha para una condición DONDE
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
editar # 1
pensé que debería ver a un .Año en la fecha de examen, pero no lo hice. Después de ver un par de puestos aquí volví y encontré esto funciona ...
.Where(x => x.exam.Value.Year == 2010)
¿Por qué es necesario acceder a .Value .Año? El examen es una fecha de tiempo anulable.
'.Value' es necesario porque' exam' es un campo anulable en su modelo. (Supongo que en su base de datos la columna correspondiente permite valores NULL). –
@Scott: eso es correcto, el DB permite nulos en esa columna. Gracias. – DenaliHardtail