2015-03-27 17 views
5

ho cercato di adattare il campione DynamicEdmModelCreation da https://github.com/OData/ODataSamples/tree/master/WebApi/v4/DynamicEdmModelCreation in una versione v3 praticabile (voglio caricare odata direttamente in Excel, che non supporta odata V4 ancora)Come rendere dinamico odata sostegno modello EDM interroga

ho aggiunto config.AddODataQueryFilter() per l'impostazione e [EnableQuery] sul metodo get del controller, ma ora ricevere l'eccezione:

Una prima eccezione di possibilità di tipo 'System.Runtime.Serialization.SerializationException' si è verificato in System.Web.Http .OData.dll

Informazioni aggiuntive: 'EnumerableQuery`1' non può essere serializzato utilizzando ODataMediaTypeFormatter.

che viene gettato dalla https://github.com/ASP-NET-MVC/aspnetwebstack/blob/master/OData/src/System.Web.Http.OData/OData/Formatter/ODataMediaTypeFormatter.cs#L577

è il fatto che il mio metodo Get del controller restituisce un EdmEntityObjectCollection un problema? Avrei pensato che sarebbe sufficiente aggiungere l'attributo EnableQuery al framework per sapere come applicare quella operazione di query allo EdmEntityObjectCollection che sto restituendo (che avrà molti più dati di quelli potenzialmente necessari)

risposta

4

Cosa hai fatto è giusto, ma OData WebApi non supporta le opzioni di query nello scenario non tipizzato ora, e c'è uno issue aperto su questa funzione.