3
我有一個MVC4 WebAPI控制器,返回一個IQueryable
,因此我可以使用$filter
和URL中的朋友來處理來自REST端點的結果。這裏是我的控制器:可能手動將OData參數應用於`.AsQueryable()`的結果?
public class EnrollmentController : ApiController
{
[Queryable]
public IQueryable<tblEnrollment> Get()
{
var context = new ProjectEntities();
context.ContextOptions.LazyLoadingEnabled = false;
return context.tblEnrollment.AsQueryable();
}
}
但是,像this poster,我想使JSON輸出格式有一點不同是與Ember數據的預期格式友好。所以我想,而不是返回此:
return new { enrollment = context.tblEnrollment.AsQueryable() };
然而,打破OData的能力,因爲我沒有返回IQueryable
到的WebAPI層。所以,我想知道是否有一種方法可以做這樣的事情:
return new { enrollment = context.tblEnrollment.AsQueryable().ApplyOData() };
,我相信會的方式來好得令人難以置信......但有一些方法來明確處理的OData參數而不是讓WebAPI圖層在Get
方法返回的結果集上隱式地執行該操作,而不是使用IQueryable
?還是有另一種方法來完成我想要的東西嗎?順便說一下,我暫時停留在EF4上,因爲我無法升級到VS2012(因此無法升級到.NET4.5和EF5)。理論上我可以升級到EF 4.3.1,如果有幫助的話。