Использование только части года в дате для условия WHERE

В приведенном ниже операторе LINQ я хочу выбрать людей с датой экзамена в 2010 году. Дата экзамена хранится как datetime, поскольку фактическая дата и время используются в других приложениях. Какой самый элегантный, самый простой и лучший способ сравнить дату экзамена только с «2010». Или мне просто сравнить, используя> =, дату экзамена с 01.01.2010?

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

РЕДАКТИРОВАТЬ # 1

Я думал, что должен увидеть год на дате экзамена, но не увидел. Увидев здесь пару сообщений, я вернулся и обнаружил, что это работает ...

.Where(x => x.exam.Value.Year == 2010)

Почему .Value необходимо для доступа к .Year? Экзамен - datetime, допускающий значение NULL.

12
задан DenaliHardtail 14 January 2011 в 18:33
поделиться