Ordre par ordre décroissant par ligne dans la requête

Je veux écrire une requête EF qui commande par ordre croissant ou décroissant en fonction de la condition. Voici mon pseudo code:

var result= q.OrderByDescending(x => x.StatusId == 3) if( x.StatusId == 3) then order by x.ReserveDate if( x.StatusId != 3 ) then order by descending x.LastUpdateDate 

Comment puis-je faire ceci?

Mettre à jour

Ce n’est pas pareil que q = condition ? q.OrderBy(..) : q.OrderByDescending(..) q = condition ? q.OrderBy(..) : q.OrderByDescending(..) comme indiqué dans la question dupliquée référencée, l’ordre de sorting diffère en fonction de la valeur dans la ligne au lieu d’un indicateur en dehors de la requête.