OData v4 api攻略
附上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攻略相关推荐
- 【c#】Form调用百度地图api攻略及常见问题
首先,在Form中调用百度地图api,我们需要使用webbrowser控件,这个在前面的文章中已经讲过了,可以参照(http://blog.csdn.net/buptgshengod/article/ ...
- 分享股票下单API接口的方式和API攻略
1.通过券商交易接口API交易下单是最稳定最快速的!API下单对公募私募资管机构是开放的!退而求其次,机构也可以选择文件扫单下单,效率也很高! 但,很可惜,API下单和文件扫单这俩功能均不对散户开放哦 ...
- 箱子布局攻略 (HBox/VBox Layout)
一.了解箱子布局 箱子布局是一种新颖的布局方式,其布局模型可以更好地优化UI设计的工作.它率先在 XUL 界面语言中被提出,广泛应用于 Mozilla 的应用程序,如 FireFox 等等.在 CSS ...
- DL框架之TensorFlow:深度学习框架TensorFlow Core(低级别TensorFlow API)的简介、安装、使用方法之详细攻略
DL框架之TensorFlow:TensorFlow Core(低级别TensorFlow API)的简介.安装.使用方法之详细DL框架之TensorFlow:深度学习框架TensorFlow Cor ...
- python语言学习:python语言学习中的定义类、定义函数、封装api等详细攻略
python语言学习:python语言学习中的定义类.定义函数.封装api等详细攻略 目录 python语言学习中的定义类 python语言学习中的定义函数 python语言学习中封装api pyth ...
- TF学习——TF之API:TensorFlow的高级机器学习API—tf.contrib.learn的简介、使用方法、案例应用之详细攻略
TF学习--TF之API:TensorFlow的高级机器学习API-tf.contrib.learn的简介.使用方法.案例应用之详细攻略 目录 tf.contrib.learn的简介 tf.contr ...
- ML之API:国内外各大人工智能平台(百度云/华为云/阿里云/Face++等)及其API的简介、使用方法之详细攻略
ML之API:国内外各大人工智能平台(百度云/华为云/阿里云/Face++等)及其API的简介.使用方法之详细攻略 目录 一.百度云api 1.api之CV 二.旷视科技(face++)api 1.a ...
- 【“互联网+”大赛华为云赛道】API命题攻略:厘清三步解题思路,用好开发工具
摘要:结合华为云API开放平台API Exploer实现照片分类系统. API能为我们带来什么? 有了 API,可以创建管理云服务器.云容器.云硬盘,提高工作效率:可以接入图像识别.情感分析.内容审核 ...
- NLP之Chatgpt:基于openai框架通过调用API接口实现Chatgpt的吊炸天功能的图文教程(基于python代码实现)、案例应用之详细攻略
NLP之Chatgpt:基于openai框架通过调用API接口实现Chatgpt的吊炸天功能的图文教程(基于python代码实现).案例应用之详细攻略 导读:2023年1月30日版本更新,以下是最新消 ...
最新文章
- play 连接mysql_Play framework 2.x 连接mysql | 学步园
- Linux Kernel ‘CLONE_NEWUSER|CLONE_FS’本地权限提升漏洞
- ImageButton 无法显示
- 字符串的一般性和特殊性
- vue学习笔记-12-计算属性
- 银行计算机管理系统开发背景,银行储蓄管理系统的设计与实现
- 数据库 使用 笛卡尔积两表联查 查询sql语句
- 5分钟了解什么是自然语言处理技术
- bilibili缓存视频批量转换成mp4格式,方便学习
- loongson2f_龙芯灵珑9S2A一体机tftp+usb安装debian6 详细过程:
- 请求参数为null问题
- v2021年烷基化工艺考试题及烷基化工艺考试试卷
- 机顶盒(Iptv)EPG页面实现视频播放
- Linux vim编辑器
- PLC闪烁电路的实现
- xp怎么删除计算机管理员用户名和密码,Windows XP 的 Administrator 超级管理员密码忘记了,如何清除?...
- 高效| 工厂如何做好设备管理工作?看这篇就够了!
- uni-app学习笔记4
- Mac按照MATLAB提示“libmwlmgrimpl.dylib”文件已损坏
- [python][LXF][Notes]文件读写及序列化
热门文章
- 实时面部动作捕捉技术:Faceware Live
- android 鼠标配置,Android 增加鼠标支持
- HTML应用单选框实例
- 【GitHub pages】关于404错误There isn‘t a GitHub Pages site here.
- 【041_帷幕_第三四章总结】
- 知识梳理——JavaScript
- 微盟餐饮SaaS蜕变时刻:战略投资奥琦玮,领军之势已成
- Keras实现一维卷积(Conv1D)实例
- 如何让pbootcms模板自动生成当前页面二维码-教程
- 拓嘉辰丰:拼多多物流问题主要体现在哪些地方