ASP.NET MVC + Web API v3 ( OData ) Project Structure
\App_Start\WebApiConfig.cs |
using System; using System.Web.Http; using System.Web.Http.OData.Builder; namespace ODataSoccer { public static class WebApiConfig { public static void Register(HttpConfiguration config) { ODataConventionModelBuilder builder; builder = new ODataConventionModelBuilder(); builder.EntitySet<ODataSoccer.PLAYER_VIEW>("player"); config.Routes.MapODataRoute("playerodata", "player", builder.GetEdmModel()); builder = new ODataConventionModelBuilder(); builder.EntitySet<ODataSoccer.LEAGUE_VIEW>("team"); config.Routes.MapODataRoute("teamodata", "team", builder.GetEdmModel()); } } } |
\Controllers\PlayerController.cs |
using System; using System.Linq; using System.Web.Http; using System.Web.Http.OData; using ODataSoccer; namespace ODataSoccer.Controllers { public class PlayerController : ODataController { private SoccerEntities db = new SoccerEntities(); // GET odata/Player [Queryable] public IQueryable GetPlayer() { return db.PLAYER_VIEW; } // GET odata/Player(5) [Queryable] public SingleResult GetPLAYER_VIEW([FromODataUri] int key) { return SingleResult.Create(db.PLAYER_VIEW.Where(player_view => player_view.PLAYER_ID == key)); } } } |
URL: http://<Host Name>/player/player http://<Host Name>/player/player(1) URL: http://<Host Name>/team/team http://<Host Name>/team/team(1) |