2012-03-06 9 views
9

ASP.NET MVC4 Beta ha introdotto un modo semplice per creare endpoint OData utilizzando WebAPI.C# client per utilizzare OData con il supporto linq

Quindi, avendo il seguente controller:

public class ValuesController : ApiController 
{ 
    // GET /api/values 
    public IQueryable<Document> Get() 
    { 
     return (new[] { 
      new Document() { Info = "a", Title = "qwe1" }, 
      new Document() { Info = "b", Title = "qwe2" }, }).AsQueryable(); 
    } 
} 

posso interrogare i dati con gli URL come: http: // localhost: 44087/API/valori filtro $ = Titolo eq 'qwe1'

C'è una libreria .net adeguata che può consumare questo? Così ho potuto fare qualcosa di simile:

new WebApiClient("http://localhost:44087/api/values") 
        .Get<Document>().Where(x=>x.Title == "qwe1").ToList() 

senza specificare la parte $filter=Title eq 'qwe1' manualmente?

+0

Se è un endpoint riposante di odata, dovresti essere in grado di aggiungere un "riferimento di servizio" dal tuo progetto di chiamata e VS genererà un classe del proxy per te. – gideon

+0

non è esattamente un * endpoint odata restful * come il servizio dati WCF una volta. È interrogabile come endpoint di odata, ma non ha metadati, quindi aggiungere un riferimento al servizio non funziona – Shaddix

+0

Ah male. Era un'ipotesi. – gideon

risposta

2

La cosa migliore che ho trovato finora è netFX HttpEntityClient. Anche se sembra abbastanza buono, sembra strano che non ho trovato nulla di paragonabile a MS ..

Problemi correlati