2016-03-31 16 views
0

LINQ'da OrderBy'yi kullanmaya çalışıyorum, birkaç alanı değiştirdim, ancak belgelerim koleksiyonda bulunurken her zaman null (satır yok) döndürüyor. Burada Sen tarafından sırayla kullanmak mülkün türüne bir dizi indeksli bir indeksleme politikası oluşturmak zorunda benim basit query-Order LINQ ile kullanılan satır, DOcumentDb'de satır döndürmez

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

cevap

0

var (burada bir dize varsayıyorum).

Varsayılan ilke izin verirseniz, sonuç hiçbir şekilde iade edilemez.

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

fazla bilgi için bu sayfaya bakın:

Öyle bir sıralama politikasına ihtiyaç https://azure.microsoft.com/en-us/documentation/articles/documentdb-orderby/

Umut bu yardım için

+0

sayesinde yardımcı olur, ben şimdi çalışıyor, yukarıdaki kodu eklendi tüm tam sayılarda ama yine de dize değil. Sayılar için belgeleri döndürür, ancak dize alanını denediğimde hiçbir şey döndürmez. –

+0

tamam, belki de kodu (sadece projenizi bilmediğim gibi) kullanmanız için değil, aynı zamanda uyarlamanız gerektiğine inanıyorum, ama çözümün doğru bir şekilde indeksleme politikasını yapılandırmak olduğunu düşünüyorum :) –

+0

Yardım için teşekkürler @Julien is Varsayılan olarak uygulanan geçerli endeksleme politikasını kontrol etmek için herhangi bir yol var mı? Konsolda hangi yolların dahil edilmediğini görmek mümkün mü? –