を返す MVC4 WebAPI コントローラーがあるIQueryable
ため、URL で と フレンドを使用$filter
して、REST エンドポイントからの結果を操作できます。これが私のコントローラーです:
public class EnrollmentController : ApiController
{
[Queryable]
public IQueryable<tblEnrollment> Get()
{
var context = new ProjectEntities();
context.ContextOptions.LazyLoadingEnabled = false;
return context.tblEnrollment.AsQueryable();
}
}
しかし、このポスターのように、JSON 出力形式を少し変更して、Ember Data の期待される形式により親しみやすくしたいと考えています。だから私は代わりにこれを返したい:
return new { enrollment = context.tblEnrollment.AsQueryable() };
IQueryable
ただし、 WebAPI レイヤーに を返していないため、OData の機能が損なわれます。そこで、次のような方法はないかと考えています。
return new { enrollment = context.tblEnrollment.AsQueryable().ApplyOData() };
どちらが真実であると確信しています...しかし、メソッドIQueryable
から返された結果セットに対してWebAPIレイヤーに暗黙的に処理させる代わりに、ODataパラメーターを明示的に処理する方法はありますGet
か? または、ここで必要なことを達成する別の方法はありますか?
ちなみに、VS2012(したがって.NET4.5、したがってEF5)にアップグレードできないため、当面はEF4にこだわっています。理論的には、EF 4.3.1 にアップグレードできます。