2013-05-01 11 views
5

Sto pensando di utilizzare OData per il mio servizio web (basato su API Web). Sfortunatamente, la mia origine dati NON è IQueryable. Invece di implementare il mio IQueryable, ho seguito praticamente lo this blog post.OData senza IQueryable

Quello che non capisco è come arrivare al mio modello di dati di entità (EDM)? Devo modellare un EDM ad esempio nel Designer? O è solo per EF e posso invece usare classi "normali" e impostare gli attributi di relazione? Non voglio esporre le mie strutture interne di dati quindi il mio EDM è più simile a DTOs ...

In un example Ho visto che dovrei derivare da EntitySetController per ottenere l'HTTP compatibile con OData risposta. Credo di non poter usare EntitySetController perché non supporta IQueryable. Cosa dovrei fare per ottenere comunque una risposta adeguata?

risposta

4

È possibile creare un modello EDM autonomamente. È possibile utilizzare la classe ODataConventionModelBuilder per creare il modello EDM. Questo tutorial ha qualche codice di esempio. Inoltre, eseguire il checkout degli esempi su OData da here, in particolare ODataServiceSample e ODataCompositeKeySample. Dovrebbero iniziare.

Inoltre, se non si dispone di IQueryable, è possibile derivare da ODataController anziché da EntitySetController.