OData 學習目錄html
建立應用程序api
添加引用學習
install-package entityframework 、 Install-Package Microsoft.AspNet.Odata 、 Install-Package Jqueryui
添加實體,並經過EntityFramework 生成數據spa
在Controller文件夾下建立兩個類分別爲 ProductsController、SuppliersController,而且都繼承 ODataController,在WebApiConfig類中配置路由。 3d
public static void Register(HttpConfiguration config) { // Web API 配置和服務 // Web API 路由 config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); //構建路由服務 var route = config.MapODataServiceRoute("odata", "Odata", model: GetModel()); //第二個參數Odata是前綴 } public static Microsoft.OData.Edm.IEdmModel GetModel() { var builder = new ODataConventionModelBuilder(); builder.EntitySet<Product>("Products");//第二個參數Products對應ProductsController builder.EntitySet<Supplier>("Suppliers"); return builder.GetEdmModel(); }
路由配置後F5,若是顯示以下界面說明已配置成功。
code
構建查詢服務 htm
[EnableQuery] public IQueryable<Product> Get() { return _dbContext.Products; } [EnableQuery] public SingleResult<Product> Get([FromODataUri] int key) { IQueryable<Product> result = _dbContext.Products.Where(p => p.Id == key); return SingleResult.Create(result); }
獲取全部產品信息
對象
獲取產品爲1的對象blog
獲取產品爲1的供應商