Requête LINQ ajoutant orderby fait passer et ne pas Prendre le travail Linqpad
Je veux utiliser le Saut et Prendre pour ma recherche, mais je veux aussi utiliser orderby
Sans l'Ignorer et de Prendre, avec LinqPad je peux faire la suite et cela fonctionne avec orderby
var query = from m in Orders
orderby m.ID descending
select m;
query.Dump();
Cependant, si je continue le tri, puis l'échec
query = query.Skip(1 + 10).Take(10);
query.Dump();
- Je supprimer le orderby et il fonctionne, mais je veux le orderby ....
var query = from m in Orders
select m;
query = query.Skip(1 + 10).Take(10);
query.Dump();
Qu'entendez-vous par il ne parvient pas?
OriginalL'auteur | 2014-01-21
Vous devez vous connecter pour publier un commentaire.
Erreur se produit, parce que vous utilisez
var
et compilateur de déduirequery
typeIOrderedEnumerable<T>
après votre première requête, et que vous essayez d'attribuerIEnumerable<T>
avecSkip
/Take
appels:Si vous tapez
query
commeIEnumerable<T>
au début tout fonctionne très bienJe ne sais pas pourquoi j'ai même été faire query = requête. ... Je dois préfère ce style var query = (de m dans les Ordres orderby m.ID croissant sélectionnez m).Sauter(1 + 10).Prendre(10); query.Dump();
OriginalL'auteur MarcinJuraszek
La réponse sélectionnée est correcte, mais Si vous n'êtes pas de liaison à un modèle de Type de Commande, ce serait de travailler
MarcinJuraszek est correct.
Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<Order>' to 'System.Linq.IOrderedEnumerable<Order>'. An explicit conversion exists (are you missing a cast?)
Vous obtiendrez cette erreur de la façon dont vous le faites
TOUTEFOIS de ne PAS avoir à utiliser
IEnumerable<Order>
...J'ai eu le même problème dans LINQPAD quand j'ai su que je voulais passer sur le premier enregistrement
Donc pour moi :
OriginalL'auteur Tom Stickel
pour plus d'. si vous l'utilisez ou pas, vous pouvez trier votre requête sans ordre croissant ou décroissant de style. vous pouvez utiliser le code ci-dessous.
OriginalL'auteur Erdinç