自分用走り書きメモ
やり方はいろいろあるけれど
var b = new ODataConventionModelBuilder(); b.EntitySet<HogeEntity>("Hoges"); // HogesControllerにアクセスがいくようになる config.Routes.MapODataRoute("odata", "odata", b.GetEdmModel());
みたいにして、メタデータは組み立てておいてControllerはODataControllerを継承してGetメソッドを以下のようにするのがよさげ。
namespace SampleApp.Controllers
{
public class HogesController : ODataController
{
protected override void Initialize(System.Web.Http.Controllers.HttpControllerContext controllerContext)
{
base.Initialize(controllerContext);
// なんか初期化しましょう
}
// ODataのクエリオプションは引数で受ける(TopやSkipとかが使える)
public PageResult<HogeEntity> Get(ODataQueryOptions<HogeEntity> options)
{
var results = データを取得する();
return new PageResult<LogData>(
results,
データに続きがあるなら続きを取得するためのURL,
トータルデータ件数);
}
protected override void Dispose(bool disposing)
{
// コネクションとかは切りましょう
}
}
}
PageResult