2014-11-06 11 views
13

Ich benutze Codefirst mit Odata. Ich habe meine Modelle und Beziehungen aufgebaut. Die Abfrage scheint erfolgreich zu funktionieren. Ich habe nur ein Problem, wenn ich beim Erweitern von verschachtelten Daten $ expand verwende. Ich folgte der folgenden link von Microsofts Website. So kann ich die folgende erfolgreich

http://myurl.com/odata/catagories?$expand=Product 

Wenn ich nun tiefer ein Niveau entscheiden, gehen zu usinng die folgende Abfrage

http://myurl.com/odata/catagories?$expand=Product/Supplier 

ich folgende Fehlermeldung

Die Abfrage erhalten in der angegebenen URI ist nicht gültig. Es wurde ein Pfad gefunden, der mehrere Navigationseigenschaften durchläuft. Bitte formulieren Sie die Abfrage so um, dass jeder Erweiterungsweg nur Typsegmente und Navigationseigenschaften enthält.

Wenn Sie den obigen Link besuchen, scheint jemand in den Kommentaren das gleiche Problem zu haben. Ich könnte schwören, dass ich mit einer früheren Version von odata und Web Api arbeiten konnte.

Antwort

23

Ich fand die Antwort nach dem Finden dieser question. @ Rama lieferte die Antwort. Ich schlage vor, Microsoft aktualisiert ihre Dokumente auf dem oben genannten Link. Also statt

http://myurl.com/odata/catagories?$expand=Product/Supplier 

würden Sie lieber verwenden

http://myurl.com/odata/catagories?$expand=Product($expand=Supplier) 
+1

Die Syntax ist für OData V3, aber später ist für V4 – Karata

+2

der Schrägstrich-Notation ist OData v4: http: //docs.oasis-open .org/odata/odata/v4.0/errata01/os/komplett/part2-url-konventionen/odata-v4.0-errata01-os-part2-url-conventions-complete.html # _Toc395267179 – Jerther

+1

Besonders schlecht, weil Microsoft behauptet, dass es OData v4 implementiert, und OData4-Client-Bibliotheken werden die Anfrage mit der Slash-Methode machen. Anstatt die Dokumente zu aktualisieren, sollte Microsoft die Implementierung von Nested Expand aktualisieren. –

Verwandte Themen