2012-03-06 20 views
9

ASP.NET MVC4測試版推出了一種簡單的方法來創建一個使用的WebAPI的OData端點。C#客戶端使用LINQ支持使用OData

所以具有以下控制器:

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

我可以查詢與網址的像數據:的http://本地主機:44087/API /值$過濾器=標題EQ 'qwe1'

有沒有可以消耗這是一個正確的.NET庫?所以我可以這樣做:

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

手動不指定$filter=Title eq 'qwe1'部件?

+0

如果它是一個寧靜的odata端點,您應該能夠從您的調用項目添加一個「服務引用」,並且VS會生成一個代理類爲你。 – gideon 2012-03-06 16:16:33

+0

它不是像WCF數據服務一樣的*安靜的odata端點*。這是可查詢的OData一樣端點,但沒有元數據,因此添加服務引用不工作 – Shaddix 2012-03-06 16:24:17

+0

阿太糟糕了。是一個猜測。 – gideon 2012-03-06 16:26:32

回答

2

我迄今發現的最好的事情是netFX HttpEntityClient。 雖然它看起來不錯,但我覺得很奇怪,我發現沒有什麼可比的MS ..