2014-11-06 18 views
13

Sto usando codefirst con odata. Ho impostato i miei modelli e le relazioni. La query sembra funzionare correttamente. Sto solo correndo un problema quando uso $ espandi quando espandi i dati annidati. Ho seguito il seguente link dal sito Web di Microsoft. Quindi posso fare quanto segue con successo

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

Ora se decido di andare un livello più profondo usinng la seguente query

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

ottengo il seguente errore

La query specificata nel L'URI non è valido. Trovato un percorso che attraversa più proprietà di navigazione. Si prega di riformulare la query in modo tale che ogni percorso di espansione contenga solo segmenti di tipo e proprietà di navigazione.

Se si visita il link sopra, qualcuno nei commenti sembra avere lo stesso problema. Potrei giurare di averlo fatto funzionare con una versione precedente di Odata e Web Api.

risposta

23

Ho trovato la risposta dopo aver trovato questo question. @Rama ha fornito la risposta. Suggerisco che Microsoft aggiorni i loro documenti sul link sopra elencato. Così, invece di

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

si preferisce utilizzare

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

La sintassi formale è per OData V3, ma in seguito è per V4 – Karata

+2

la notazione a barra è v4 odata: http: //docs.oasis-open .org/odata/odata/v4.0/errata01/os/complete/part2-url-convenzioni/odata-v4.0-errata01-os-part2-url-conventions-complete.html # _Toc395267179 – Jerther

+1

Particolarmente brutto, perché Microsoft afferma che sta implementando OData v4 e che le librerie dei client OData4 effettueranno la richiesta utilizzando il metodo Slash. Piuttosto che aggiornare i documenti, Microsoft dovrebbe aggiornare la loro implementazione di Espansione nidificata. –

Problemi correlati