Есть ли простой способ сравнить даты, которые игнорируют год, используя Linq и Entity Framework?
Скажите, у меня есть следующее
var result = context.SomeEntity.Where(e => e.SomeDate > startDate);
Это предполагает, что SomeDate и startDate.NET DateTime's.
Я хотел бы сравнить эти даты без сравнения года.SomeDate может быть в любой год.Есть ли простой способ сделать это?Единственный способ, о котором я мог бы подумать, - это использовать следующее:
var result = context.SomeEntity(e =>
e.SomeDate.Month > startDate.Month ||
(e.SomeDate.Month == startDate.Month && e.SomeDate.Day >= startDate));
Этот метод быстро усложняется, если я тоже хочу иметь endDate, так как мне придется делать такие вещи, как учестькогда начальная дата находится в конце года, а конечная дата в начале.
Есть ли простой способ сделать это?
Обновление:
Я закончил тем, что пошел по этому пути, как я изначально думал в посте ... чертовски много кода для чего-то концептуально простого.По сути, просто нужно было найти, попала ли дата в диапазон, игнорировать год и зациклить календарь, если startDate> endDate. Если кто-нибудь знает более простой способ, пожалуйста, напишите, как я все еще заинтересован.