2012-03-06 28 views
9

ASP.NET MVC4 Beta introdujo una forma sencilla de crear puntos finales OData utilizando WebAPI.C# client para consumir OData con soporte de linq

Así que tiene la siguiente controlador:

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(); 
    } 
} 

puedo consultar los datos con es como url: http: // localhost: 44087/API/valores de filtro $ = Título eq 'qwe1'

¿Existe una biblioteca .net adecuada que pueda consumir esto? Así que podría hacer algo como:

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

sin especificar la parte $filter=Title eq 'qwe1' manualmente?

+0

Si es un punto final de odata relajante, debería poder agregar una 'Referencia de servicio' de su proyecto de llamada y VS generará un clase de proxy para ti – gideon

+0

no es exactamente * endpoint de odata tranquilo * como WCF Data Service una vez. Se puede consultar como punto final de odata, pero no tiene metadatos, por lo que agregar una referencia de servicio no funciona – Shaddix

+0

Ah, lástima. Fue una suposición. – gideon

Respuesta

2

Lo mejor que he encontrado hasta ahora es netFX HttpEntityClient. Aunque parece bastante bueno, suena extraño que no encontré nada comparable a MS ...

Cuestiones relacionadas