radiomessagerie RavenDB avec Skip et Take ne fonctionne pas [fermé]
Question
Je suis en train de mettre en œuvre une requête sur un index Lucene RavenDB et la pagination des résultats.
Je le code suivant:
IDocumentQuery<Post> q = Session.Advanced.LuceneQuery<Post, Posts_Search>()
.WhereContains("BodyHtml", query)
.OrElse()
.WhereContains("Title", query)
.AddOrder("Published", true)
.Skip(4).Take(4);
(La dernière paire de Skip et Take a été ajouté au nom d'un exemple simple).
Cette requête renvoie toujours tous les 22 documents qui correspond à ma requête, non seulement 4, comme je l'attendre.
Qu'est-ce que je fais mal?
La solution
Ce problème se produisait sur la dernière version stable de (206).
J'ai maintenant téléchargé la dernière version instable (251), et avec cette version, mon code fonctionne comme prévu. Je suppose que ce fut un bug dans la version que j'utilisais. Si je reçois quelque chose aperçu plus significatif de ma question dans le groupe RavenDB, je ferai en sorte de le poster ici.
Autres conseils
Juste une supposition ici que je ne sais pas RavenDB. Mais peut-être le fournisseur Raven ne supporte pas sauter ou prendre.
Vous pouvez essayer de convertir un IEnumerable après votre .AddOrder pour vérifier que. (Vous serez alors en utilisant LINQ to Objects à Skip et prendre, note que vous seriez encore trouvé tous vos dossiers de la DB en premier)
...
.AddOrder("Published",True)
.AsEnumerable()
.Skip(4).Take(4);