zoukankan      html  css  js  c++  java
  • OData V4 系列 服务创建

           OData 学习目录

           创建应用程序

          

       添加引用

      install-package entityframework 、 Install-Package Microsoft.AspNet.Odata 、 Install-Package Jquery

         

          添加实体,并通过EntityFramework 生成数据

         

         

           在Controller文件夹下创建两个类分别为 ProductsController、SuppliersController,并且都继承 ODataController,在WebApiConfig类中配置路由。      

    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,如果显示如下界面说明已配置成功。
            

            构建查询服务        

            [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的对象

              

        获取产品为1的供应商

              

  • 相关阅读:
    每天出门前,记得提醒自己一遍,别落下了梦想
    逐帧动画 and 有限状态机(fsm)
    【备忘】指定为同名callback的jsonp && IE下script loaded状态标记
    【NodeCC】nodejs版本的脚本压缩和compo工具
    半年拾遗
    context2D上的texture mapping
    软件系统配置UI(QT)
    MongoDB增加排序内存版本4.4.1
    搭建Mingw64环境并使用git管理ffmpeg
    js 运算符
  • 原文地址:https://www.cnblogs.com/Fengger/p/4958658.html
Copyright © 2011-2022 走看看