J'utilise Linq to sql et Linq Dynamic OrderBy.Linq To Sql - Dynamic OrderBy - Cas Lorsque
Je sais dynamique LINQ peut faire le tri simple comme - orderby ("nom_colonne").
Mais supporte-t-il quelque chose de plus complexe comme des requêtes avec "CASE WHEN" dedans?
string orderbyQuery = "(CASE WHEN (username == 100) THEN 1 ELSE 0 END) DESC)";
Voici ma requête:
var u = from u in db.users
orderby(orderbyQuery)
select u;
l'exemple ci-dessus ne fonctionne pas! , une idée si c'est possible? toute autre façon de le faire?
grâce
je dois utiliser la requête dynamique parce que, j'ai un int [] realUsers = 100, 22, 77, 12, etc ... je veux trier la table des utilisateurs en fonction de ce int [], ce qui signifie montrer les utilisateurs dans "realUsers" d'abord. – dan
Vous pouvez remplacer cette u.username == 100? 1: 0 avec (presque) n'importe quelle logique que vous voulez commander, vous êtes essentiellement en train de l'écrire en C# au lieu de Sql. Sans savoir exactement comment vous essayez de commander, il est difficile de donner un meilleur exemple que de convertir votre code original ... –