附上OData的官网地址:OData - the Best Way to REST

OData的介绍参考地址:

微软文档介绍OData

OData查询ASP.NET Web API全攻略 - Darren Ji - 博客园

OData的初步认识 - ZHK的博客 - 博客园

c# - OData Error: The query specified in the URI is not valid. The property cannot be used in the query option - Stack Overflow

详情请看上面的介绍地址,我主要记录记录所遇到的坑,以及如解决。

1、创建WEBAPI项目,不用多说

2、Nuget添加Odata

运行命令:Install-Package Microsoft.AspNet.Odata 。自动添加最新版本

3、添加EntityFramwork

运行命令:Install-Package EntityFramework 。自动添加最新版本 (本人使用的静态定义数据)

4、配置路由

        public static void Register(HttpConfiguration config){// Web API 配置和服务           // Web API 路由config.MapHttpAttributeRoutes();ODataModelBuilder builder = new ODataConventionModelBuilder();            builder.EntitySet<Product>("Products");config.MapODataServiceRoute(routeName: "OData",routePrefix: "odata",model: builder.GetEdmModel());//config.Routes.MapHttpRoute(//    name: "DefaultApi",//    routeTemplate: "api/{controller}/{id}",//    defaults: new { id = RouteParameter.Optional }//);}

5、添加控制器

            

会自动创建CRUD方法。接下来测试Odata方法。

6、测试Odata API

出现问题:

这个问题我查阅资料,使用过[EnableQuery]属性中添加配置,AllowedArithmeticOperators = AllowedArithmeticOperators.Add,但是经过测试还是不行。

说明一下,使用过时的[Queryable]属性和在config中配置config.EnableQuerySupport()方法可以成功。但是[Queryable]仅支持 $filter、$orderby、$top 和 $skip。

最终在stackoverflow上找到解决方案。在配置中添加api方法config.Count().Filter().OrderBy().Expand().Select().MaxTop(null)。

在Odata扩展方法中:

最后测试结果:

其他api测试照样成功,这里就不一一截图了。经过一天的折腾终于完成了Odata的简单DEMO。

源码下载:

源码下载地址

OData v4 api攻略相关推荐

  1. 【c#】Form调用百度地图api攻略及常见问题

    首先,在Form中调用百度地图api,我们需要使用webbrowser控件,这个在前面的文章中已经讲过了,可以参照(http://blog.csdn.net/buptgshengod/article/ ...

  2. 分享股票下单API接口的方式和API攻略

    1.通过券商交易接口API交易下单是最稳定最快速的!API下单对公募私募资管机构是开放的!退而求其次,机构也可以选择文件扫单下单,效率也很高! 但,很可惜,API下单和文件扫单这俩功能均不对散户开放哦 ...

  3. 箱子布局攻略 (HBox/VBox Layout)

    一.了解箱子布局 箱子布局是一种新颖的布局方式,其布局模型可以更好地优化UI设计的工作.它率先在 XUL 界面语言中被提出,广泛应用于 Mozilla 的应用程序,如 FireFox 等等.在 CSS ...

  4. DL框架之TensorFlow:深度学习框架TensorFlow Core(低级别TensorFlow API)的简介、安装、使用方法之详细攻略

    DL框架之TensorFlow:TensorFlow Core(低级别TensorFlow API)的简介.安装.使用方法之详细DL框架之TensorFlow:深度学习框架TensorFlow Cor ...

  5. python语言学习:python语言学习中的定义类、定义函数、封装api等详细攻略

    python语言学习:python语言学习中的定义类.定义函数.封装api等详细攻略 目录 python语言学习中的定义类 python语言学习中的定义函数 python语言学习中封装api pyth ...

  6. TF学习——TF之API:TensorFlow的高级机器学习API—tf.contrib.learn的简介、使用方法、案例应用之详细攻略

    TF学习--TF之API:TensorFlow的高级机器学习API-tf.contrib.learn的简介.使用方法.案例应用之详细攻略 目录 tf.contrib.learn的简介 tf.contr ...

  7. ML之API:国内外各大人工智能平台(百度云/华为云/阿里云/Face++等)及其API的简介、使用方法之详细攻略

    ML之API:国内外各大人工智能平台(百度云/华为云/阿里云/Face++等)及其API的简介.使用方法之详细攻略 目录 一.百度云api 1.api之CV 二.旷视科技(face++)api 1.a ...

  8. 【“互联网+”大赛华为云赛道】API命题攻略:厘清三步解题思路,用好开发工具

    摘要:结合华为云API开放平台API Exploer实现照片分类系统. API能为我们带来什么? 有了 API,可以创建管理云服务器.云容器.云硬盘,提高工作效率:可以接入图像识别.情感分析.内容审核 ...

  9. NLP之Chatgpt:基于openai框架通过调用API接口实现Chatgpt的吊炸天功能的图文教程(基于python代码实现)、案例应用之详细攻略

    NLP之Chatgpt:基于openai框架通过调用API接口实现Chatgpt的吊炸天功能的图文教程(基于python代码实现).案例应用之详细攻略 导读:2023年1月30日版本更新,以下是最新消 ...

最新文章

  1. play 连接mysql_Play framework 2.x 连接mysql | 学步园
  2. Linux Kernel ‘CLONE_NEWUSER|CLONE_FS’本地权限提升漏洞
  3. ImageButton 无法显示
  4. 字符串的一般性和特殊性
  5. vue学习笔记-12-计算属性
  6. 银行计算机管理系统开发背景,银行储蓄管理系统的设计与实现
  7. 数据库 使用 笛卡尔积两表联查 查询sql语句
  8. 5分钟了解什么是自然语言处理技术
  9. bilibili缓存视频批量转换成mp4格式,方便学习
  10. loongson2f_龙芯灵珑9S2A一体机tftp+usb安装debian6 详细过程:
  11. 请求参数为null问题
  12. v2021年烷基化工艺考试题及烷基化工艺考试试卷
  13. 机顶盒(Iptv)EPG页面实现视频播放
  14. Linux vim编辑器
  15. PLC闪烁电路的实现
  16. xp怎么删除计算机管理员用户名和密码,Windows XP 的 Administrator 超级管理员密码忘记了,如何清除?...
  17. 高效| 工厂如何做好设备管理工作?看这篇就够了!
  18. uni-app学习笔记4
  19. Mac按照MATLAB提示“libmwlmgrimpl.dylib”文件已损坏
  20. [python][LXF][Notes]文件读写及序列化

热门文章

  1. 实时面部动作捕捉技术:Faceware Live
  2. android 鼠标配置,Android 增加鼠标支持
  3. HTML应用单选框实例
  4. 【GitHub pages】关于404错误There isn‘t a GitHub Pages site here.
  5. 【041_帷幕_第三四章总结】
  6. 知识梳理——JavaScript
  7. 微盟餐饮SaaS蜕变时刻:战略投资奥琦玮,领军之势已成
  8. Keras实现一维卷积(Conv1D)实例
  9. 如何让pbootcms模板自动生成当前页面二维码-教程
  10. 拓嘉辰丰:拼多多物流问题主要体现在哪些地方