Existe-t-il un moyen simple de comparer des dates, qui ignore l'année, en utilisant Linq et Entity Framework?Comparer des dates, en ignorant l'année - Linq/Entity Framework
Dire que j'ai les suivantes
var result = context.SomeEntity.Where(e => e.SomeDate > startDate);
Cela suppose que SomeDate et startDate sont .NET DateTime de.
Ce que je voudrais faire est de comparer ces dates sans comparer l'année. SomeDate peut être n'importe quelle année. Y a-t-il un moyen facile de faire cela? La seule façon que je pouvais penser serait d'utiliser les éléments suivants:
var result = context.SomeEntity(e =>
e.SomeDate.Month > startDate.Month ||
(e.SomeDate.Month == startDate.Month && e.SomeDate.Day >= startDate));
Cette méthode devient rapidement plus complexe si je suis à la recherche d'avoir un endDate aussi bien, que je vais devoir faire des choses comme compte prendre pour quand la date de début est à la fin de l'année et la date de fin est au début.
Existe-t-il un moyen facile d'y parvenir?
Mise à jour:
J'ai fini par aller juste à ce sujet comme je l'avais d'abord pensé à la poste ... un diable de beaucoup de code pour quelque chose sur le plan conceptuel simple. Fondamentalement, il suffit de trouver si une date est tombée dans une fourchette, en ignorant l'année, et en boucle le calendrier si startDate> endDate Si quelqu'un connaît un moyen plus facile, s'il vous plaît envoyer comme je suis toujours intéressé.
'DayOfYear' n'est pas pris en charge dans LINQ to Entities. – bunglestink
Je ne pense pas que vous pouvez utiliser les méthodes d'extension non plus ... – bunglestink
@bunglestink avez-vous déjà résolu cela? Je pense à forcer une requête sql si ef me donne l'enfer – GotaloveCode