2016-03-31 5 views
0

Ich habe versucht, OrderBy in LINQ zu verwenden Ich habe mehrere Felder geändert, aber es gibt immer Null (keine Zeilen) zurück, während meine Dokumente in der Sammlung vorhanden sind. Hier ist mein einfacher query-OrderBy verwendet mit LINQ gibt keine Zeilen in DOcumentDb

 var rests = _client.CreateDocumentQuery<Restraunt>(_collectionUri) 
         .OrderBy(x => x.RestName); 

Antwort

0

Sie haben eine Indizierung Politik mit einem Entfernungs-Index von der Art der Immobilie, die Sie in der Reihenfolge zum Erstellen von (hier gehe ich davon einen String).

Wenn Sie die Standardrichtlinie zulassen, wird die Reihenfolge durch kein Ergebnis zurückgegeben.

Sie benötigen eine Sortierpolitik wie folgt aus:

restrauntsCollection.IndexingPolicy.IncludedPaths.Add(
    new IncludedPath { 
     Path = "/RestName/?", 
     Indexes = new Collection<Index> { 
      new RangeIndex(DataType.String) { Precision = -1 } } 
     }); 

Siehe diese Seite für weitere Informationen: https://azure.microsoft.com/en-us/documentation/articles/documentdb-orderby/

hoffe, das hilft

+0

Dank für die Hilfe, fügte ich den obigen Code, jetzt funktioniert es auf allen ganzen Zahlen aber immer noch nicht auf Schnur. Es gibt die Dokumente für Zahlen zurück, aber wenn ich versuche, string Feld gibt es nichts zurück. –

+0

ok, vielleicht müssen Sie den Code anpassen und nicht nur, um es zu verwenden (wie ich Ihr Projekt nicht weiß), aber ich glaube wirklich, dass Ihre Lösung ist Indexierungsrichtlinie richtig zu konfigurieren :) –

+0

Danke für Hilfe @Julien ist Gibt es eine Möglichkeit, die aktuelle Indexierungsrichtlinie zu überprüfen, die standardmäßig implementiert wird? Ich meine, wie ich in der Konsole anzeigen kann, welche Pfade enthalten sind, die nicht sind? –