136 votes

"Order by Col1, Col2" en utilisant entity framework

J'ai besoin d'ordonner par 2 colonnes en utilisant le framework entity.

Comment cela se passe-t-il ?

return _repository.GetSomething().OrderBy(x => x.Col1   .. Col2)?

i.e

SELECT * FROM Foo ORDER BY Col1, Col2

291voto

Konamiman Points 20578

Essayer OrderBy(x => x.Col1).ThenBy(x => x.Col2) . Il s'agit d'une fonctionnalité de LINQ, de toute façon, qui n'est pas exclusive à EF.

62voto

parfilko Points 109

D'une autre manière :

qqq.OrderBy(x => new { x.Col1, x.Col2} )

34voto

hojjat.mi Points 487

Essayez :

OrderBy(x => x.Col1).ThenBy(x => x.Col2)

Pour l'ordre décroissant, essayez ceci :

OrderByDescending (x => x.Col1).ThenByDescending (x => x.Col2)

4voto

e03050 Points 866

Le tri suivant est effectué au niveau de la base de données. Pas sur le résultat retourné.

Essayez :

IQueryable<a>.OrderBy("col1 asc, col2 asc")

Exemple 1 :

ctx.CateringOrders.OrderBy("Details.DeliveryDate asc, Details.DeliveryTime asc")

Exemple 2 :

ctx.CateringOrders.OrderBy("{0} {1}, {2} {3}", 
    "Details.DeliveryDate", "asc",
    "Details.DeliveryTime", "asc" 
)

IQueryable<a> est une requête d'entité, "col1 asc" est la colonne 1 et le sens de tri "col2 asc" est la colonne 2 et le sens du tri

-7voto

lukyer Points 3269

Veuillez noter que cela ne fonctionnera pas avec Telerik's Grid ou tout autre composant Telerik's DataSource. Bien qu'il utilise un objet IQueryable préfiltré, le tri est toujours effectué automatiquement à la dernière étape, ce qui a pour effet d'annuler vos paramètres de tri.

Vous devez suivre : Spécification du tri par défaut dans la grille

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X