[转]Work With Odata in Web API: Create Your First Odata Service
This is the “Work with Odata in Web API” article series. This article of the series explains various parts of Odata service in context of the ASP.NET Web API. The previous article provided an introduction to Odata. You can read it here:
Work With Odata in Web API : Introduction of ASP.NET Odata service
In this article we will create our first Odata service in the ASP.NET Web API 2 environment. It's a highly practical example of a simple Odata service. I will assume you have a basic understanding of the MVC architecture and Web API service.
Ok, if you still want to continue then that implies you have the required skills and want to learn Odata services in the Microsoft platform. Fine, use the following procedure and you will get it done.
Create one MVC 4 project in Visual Studio Don't forget to select the MVC 4 template otherwise we will not get a template of the Web API. If you are using Visual Studio 2010 then you need to install the template externally.
Select Web API project Make sure you have selected a Web API project and the view engine part is not necessary and not important in our example, so leave it as it is.
Once you click on OK, the project will be created in the Visual Studio environment and the next step is to install a few packages from the Nugget Package Manager.
Install Web API 2 package In my case I opened the Web API version 1.0 application. To support Odata, we need to upgrade the Web API version. So, go to the Nuget Package Manager and search for the Web API 2.0 package.
Once you press install you will see the package being installed and in the middle of the installation you might encounter the following screen. It's asking you to accept the terms and condition of dependent packages. Just click “Accept” and proceed.
Once we finish our Web API up gradation, we will install the Odata service package from the same package manager. Search for “odata service package” and install the following package in the application.
Again in the middle of the application you will encounter the following screen that will ask to accept the license agreement. Click “Accept” and proceed.

Fine, we have set up our packages and all installation has finished. Now, we can start to write code to expose our Odata service.
Create Model class At first we will create a Model class that we will expose as a data model in the Odata service. In this example we created a “person” model class as in the following. It has four properties.

Add Odata controller If you are experienced with MVC then you re familiar with the MVC controller but in an Odata service the controller is the Odata controller that we will add to the application shortly.
So, right-click on the controller folder and click on the menu as in the following screen.


It will open the following window. At first we need to provide a controller name and then model name. In the data context box just click on the "Add data context" button and provide the name as in the following screen.

Configure Odata route This is a very important part of Odata service configuration. Open the “WebApiConfgi.cs” file from the App_Start folder. We need to register the route of our Odata servce.
public static void Register(HttpConfiguration config)
{
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<Models.personModel>("Person");
config.Routes.MapODataRoute("odata", "odata", builder.GetEdmModel());
config.EnableSystemDiagnosticsTracing();
}
Implement Get() method in controller Here we have implemented a simple controller that will expose the service. In the Get() method we have just hard-coded some data. In reality obviously you will use a DB to fetch the data.
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.ModelBinding;
using System.Web.Http.OData;
using System.Web.Http.OData.Routing;
using MvcApplication2.Models;
namespace MvcApplication2.Controllers
{
public class personController : ODataController
{
[Queryable]
public IQueryable<personModel> Getperson()
{
List<personModel> list = new List<personModel>{
new personModel{Id=1, name = "Sourav",surname="kayal",age=26},
new personModel{Id=2, name = "Ram",surname="Das",age=26}
};
return list.AsQueryable<personModel>();
}
}
}
Fine, our Odata service is now ready to be exposed. Let's run the application and try to consume the Odata service. Open a browser window and point to the Get() action in the person controller.
Oh, Cheers; our first Odata service is running successfully. We are getting a list of all persons.
Now, if we want to filter the results with a query, something like this:
Have a look at the URL part. In the URL we are passing a query to get the information with the Id 1. Anyway we will explain the query in a later article.
Conclusion This article implemented an Odata service practically. I hope you have understood it and successfully implemented it. In a future article we will understand more about Odata services.
[转]Work With Odata in Web API: Create Your First Odata Service的更多相关文章
- 创建基于OData的Web API - Knowledge Builder API, Part IV: Write Controller
基于上一篇<创建基于OData的Web API - Knowledge Builder API, Part III:Write Model and Controller>,新创建的ODat ...
- 创建基于OData的Web API - Knowledge Builder API, Part I:Business Scenario
在.NET Core 刚刚1.0 RC的时候,我就给OData团队创建过Issue让他们支持ASP.NET Core,然而没有任何有意义的答复. Roadmap for ASP.NET Core 1. ...
- Web Api系列教程第2季(OData篇)(二)——使用Web Api创建只读的OData服务
前言 很久没更新了,之前有很多事情,所以拖了很久,非常抱歉.好了,废话不多说,下面开始正题.本篇仍然使用上一季的的项目背景(系列地址http://www.cnblogs.com/fzrain/p/34 ...
- [转]Web Api系列教程第2季(OData篇)(二)——使用Web Api创建只读的OData服务
本文转自:http://www.cnblogs.com/fzrain/p/3923727.html 前言 很久没更新了,之前有很多事情,所以拖了很久,非常抱歉.好了,废话不多说,下面开始正题.本篇仍然 ...
- Create an OData v4 Endpoint Using ASP.NET Web API 2.2(使用ASP.NET Web API 2.2创建OData v4端点)
开放数据协议Open Data Protocol(OData)是web的一种数据存取协议,OData通过设置CRUD操作(Create创建.Read读取.Update更新,Delete删除)提供一种统 ...
- ODATA WEB API(二)----ODATA服务与客户端
一.概述 ODATA不经可以作为WebAPI建立相应的WEBAPI控制器,还可以建立ODataControl控制器,能够通过插件建立第三方ODataClinet类库:调用和使用数据变得简单可行. 二. ...
- 创建基于OData的Web API - Knowledge Builder API, Part II:Project Setup
本篇为Part II:Project Setup 查看第一篇<Part I: Business Scenario> 第一步,准备步骤. 准备步骤一,下载.NET Core 2.2 SDK ...
- web api 2 学习笔记 (OData Batch request)
之前介绍过OData 中实现RPC的写法,今天在来一个批量操作. 参考 : https://damienbod.wordpress.com/2014/08/14/web-api-odata-v4-ba ...
- web api 2 学习笔记 (Odata ODataQueryOptions 使用)
[ODataRoutePrefix("products")] public class ProductController : BaseController { [ODataRou ...
随机推荐
- .net core i上 K8S(二)运行简单.netcore程序
上一章我们搭建了k8s集群,这一章我们开始在k8s集群上运行.netcore程序 1.kubectl run 在我的Docker系列教程里,我曾往docker hub中推送过一个镜像“webdokce ...
- C# 读Autofac源码笔记(1)
最近在看Autofac的源码. Autofac据说是.net中最快的IOC框架,具体没有实验,于是看看Autofac具体是怎样实例化实体. image.png 如上图所示,Autofac使用的是表 ...
- [ZJOI2008] 树的统计Count
题目链接:戳我 树链剖分. 注意一点就是维护最大值的时候最好写成下面代码里那个样子,要不然会因为可能左右区间没有的问题有奇奇怪怪的锅. 代码如下: #include<iostream> # ...
- js项目
https://bbs.csdn.net/topics/320029234 文本实现悬挂缩进 牛逼牛逼 这是真的牛逼 p:first-letter { margin-left: -2e ...
- centos6.5 命令行配置无线上网
1.驱动下载地址: RTL8188无线网卡驱动下载 链接:https://pan.baidu.com/s/1ms-EbQCDxa76jPhYUPmr9Q 密码:r2vu 2.安装步骤: [root@c ...
- hdfs shell的基本操作以及hdfsWeb查看文件
在安装好hadoop集群并成功的启动了hdfs之后,我们就可以利用hdfs对文件进行操作了,一下是对文件的一些基本操作 hdfs基本操作 1.查询命令 hadoop dfs -ls / 查询/目录 ...
- MySql 的操作日志 历史记录
如何查看mysql数据库操作记录日志 1.首先确认你日志是否启用了mysql>show variables like 'log_bin'. 2.如果启用了,即ON,那日志文件就在mysql的安装 ...
- spring测试save方法报错
用test类测试service的save方法时,报错如下: 2018-08-24 21:52:13,506 - could not read a hi value com.mysql.jdbc.exc ...
- jenkins配置以cygwin环境的子节点
1.为Cygwin配置上sshd服务 ⑴.双击点击如下安装文件,并一直选取下一步 ⑵.到这个步骤停止,并且在search栏里输入openssh,并下载搜出的两个程序 ⑶.下载好以后以管理员权限打开cy ...
- JAVA数据结构--快速排序
快排概念 快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),一种排序算法,最早由东尼·霍尔提出.在平均状况下,排序个项目要(大O符号)次比较.在 ...