2016-05-09 9 views
0

Hallo ich eine Störung erhalte, währendAzure DocumentDB, Suche im Wörterbuch mit LINQ

query = query.Where(r => r.Features.ContainsValue(fuelType)); 

Hier verwenden ist mein Modell

public class VehicleResponse 
     { 
      [JsonProperty(PropertyName = "id")] 
      public string Id { get; set; } 

      public Vehicle Vehicle { get; set; } 

      public List<string> PhotoUrls { get; set; } 

      public string VideoUrl { get; set; } 

      public Dictionary<string, string> Features { get; set; } 

      public List<string> Equipments { get; set; } 

      public VehicleResponse() 
      { 
       this.PhotoUrls = new List<string>(); 
      } 
     } 

DocumentDB nicht "Contains" Verfahren zu unterstützen. Wie sollte ich meine LINQ-Abfrage ändern?

Vielen Dank.

Antwort

2

Wenn Sie definieren Ihre Funktionen wie folgt aus:

"Features": { 
    "TKey": "TK1", 
    "TValue": "TV1" 
    } 

Sie es ändern könnte. query = query.Where (r => r.Features [ "TKey"] Enthält ("T"));

Sie könnten die documents lesen, um weitere Informationen zu erhalten.

+0

Danke Es hat funktioniert! BTW haben Sie eine Idee, wie Sie das gleiche für List tun können? – sercanD

+0

Es ist vergleichbar mit einem Array, Sie könnten Contains direkt verwenden, wie 'Where (f => f.Equipments.Contains (" E "))' –

+0

Es war kein sauberes Ergebnis von Enthält in Liste , ich füge nur Liste hinzu Elemente zur rohen Zeichenfolge, besseres Ergebnis. – sercanD