Linq clause where avec de multiples conditions et null vérifier

Je suis en train de vérifier si une date est nulle dans linq et si elle n'est pas vérifier son une date ultérieure.

QuestionnaireRepo.FindAll(q => !q.ExpiredDate.HasValue || q.ExpiredDate >DateTime.Now).OrderByDescending(order => order.CreatedDate);

J'ai besoin de la deuxième case de n'appliquer que si le premier est vrai. Je suis à l'aide d'un seul modèle de référentiel et FindAll accepté une clause where

Des idées? Il y a beaucoup de questions similaires sur ici, mais pas que donner la réponse, je suis très nouveau pour Linq comme vous pouvez en douter 🙂

Edit: je obtenir les résultats dont j'ai besoin maintenant, mais il sera de vérifier l' > conditionnelle sur les valeurs null dans certains cas. Ce n'est pas une mauvaise chose?

Pouvez-vous ne pas simplement dire où (q.ExpiredDate > DateTime.Maintenant)? Que devez retourner toutes les lignes où le ExpiredDate est une date future.

OriginalL'auteur Andrew | 2010-03-17