使用WCF Data Service 创建OData服务

在 上一章 中,介绍了如何通过 OData 协议来访问 OData 服务提供的资源。下面来介绍如何创建一个 OData 服务。在这篇文章中,主要说明在.NET的环境下,如何使用 WCF Data Service 来创建OData服务。当然,对于 JAVA 或者其它平台,也是可以创建 OData 服务的。甚至是数据库,都可以提供 OData 服务。

WCF Data Service 是需要 ORM 的支持的,当然,主流的 ORM 都已经支持 WCF Data Service 了,包括(但不限于) Entity Framework、Linq to SQL、ALinq 这些主流的 ORM 框架。

一、创建 Model

使用Wcf Data Service,首先要做的工作就是创建 Model 了,关于如何创建 Model 的,在这里不再述说,如果不清楚的,请根据你所使用的 ORM,阅读相关的教程。

二、创建 Wcf Data Service

右键点击项目,选择添加项,然后选择 Wcf Data Service,如果找不到这项,请安装 Wcf Data Service 模版。

生成的代码如下:

public class NorthwindDataService : DataService< /* TODO: put your data source class name here */ >
{
// This method is called only once to initialize service-wide policies.
public static void InitializeService(IDataServiceConfiguration config)
{
// TODO: set rules to indicate which entity sets and service operations are visible, updatable, etc.
// Examples:
// config.SetEntitySetAccessRule("MyEntityset", EntitySetRights.AllRead);
// config.SetServiceOperationAccessRule("MyServiceOperation", ServiceOperationRights.All); }
}

接着需要做的是,将生成代码中的 <> 替换成数据源实体类,同时,设计好访问权限。为了方便起,提供了所有的权限。

[System.ServiceModel.ServiceBehavior(IncludeExceptionDetailInFaults = true)]
public class NorthwindDataService : DataService<NorthwindDatabase>
{
// This method is called only once to initialize service-wide policies.
public static void InitializeService(DataServiceConfiguration config)
{
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
config.SetEntitySetAccessRule("*", EntitySetRights.All);
config.SetServiceOperationAccessRule("*", ServiceOperationRights.AllRead); config.UseVerboseErrors = false;
}
}

如果你使用的 ALinq,还需要下载 WcfDataService 的 t4 模版用来生成相关的代码。点击这里下载 ,将该t4文件添加到项目,并命名为Northwind.DataServices.tt,打开该文件,将其中的 FilePath 改为对应的 ADMF 文件路径,该路径可以绝对或者相对路径,以便生成相应的代码。

三、启动 WCF Data Service。

或键点击NorthwindDataService.svc文件,在弹出的菜单中,选择 View in Browser 。

运行如下图所示:

接着,便可以使用 OData 协议对数据源进访问。从这里可以看得出来,通过使用 Wcf Data Service ,可以很方便快捷地创建一个OData 服务。

相关链接:

WCF Data Service 使用小结 (一)—— 了解OData协议

使用WCF Data Service 创建OData服务的更多相关文章

  1. WCF Data Service 使用小结(二) —— 使用WCF Data Service 创建OData服务

    在 上一章 中,介绍了如何通过 OData 协议来访问 OData 服务提供的资源.下面来介绍如何创建一个 OData 服务.在这篇文章中,主要说明在.NET的环境下,如何使用 WCF Data Se ...

  2. WCF Data Service 使用小结 (一)—— 了解OData协议

    最近做了一个小项目,其中用到了 WCF Data Service,之前是叫 ADO.NET Data Service 的.关于WCF Data Service,博客园里的介绍并不多,但它确实是个很好的 ...

  3. WCF Data Service 使用小结 —— 了解OData(一)

    最近做了一个小项目,其中用到了 WCF Data Service,之前是叫 ADO.NET Data Service 的.关于WCF Data Service,博客园里的介绍并不多,但它确实是个很好的 ...

  4. 为 Oracle Database 开发 WCF Data Services 和 OData 应用程序

    为 Oracle Database 开发 WCF Data Services 和 OData 应用程序 本教程包含以下部分:   目的   所需时间   概述   先决条件   创建新的网站项目   ...

  5. UI5-学习篇-5-SAP创建OData服务-Structure

    本文介绍SAP后端系统基于数据结构创建OData服务过程. 1.创建数据字典 2.创建OData service 2.1创建Gateway service project 事务码:SEGW 点击Cre ...

  6. WCF Data Service

    WCF Data Service:http://www.cnblogs.com/shanyou/category/240225.html

  7. 我的WCF Data Service 系列 (一、为什么要有WCF Data Service)

    开篇先说两名题外话, 在博问上,经常看到有个问性能问题,比如Entity Framework的性能行不行啊之类的. 其实这个行不行,关键还是看对象,一夜家族的老七可能勉强吃点蓝片片,也就行了,可真要让 ...

  8. 调用WCF Data Service的几点Tips

    使用Linq实现sql in statement的时候,用EF的时候可以通过Contains.Exists的方法实现.但是在使用WCF Data Service的context的时候,会报不支持该方法 ...

  9. MS MDS系列之初始MS Master Data Service(微软主数据服务)

    背景介绍: 主数据服务(Master Data Services)是微软平台支持的主数据管理(MDM)平台.类似MDS这样的系统,如果后续维护得当,会给企业提供一个强大的中心数据库系统,来防止企业数据 ...

随机推荐

  1. monoTouch for android visual studio c#开发

    本人  c# 程序员,第一次配置环境 按照此流程安装   http://www.wuleba.com/18892.html 本次下载的 8 个安装程序,我是安装以上顺序安装的,分别标志为1至8,暂时不 ...

  2. Node.js与MongoDB的基本连接示例

    Node.js与MongoDB的基本连接示例 前提 已经安装了node.js和MongoDB,本文使用的node.js是v0.12.0,MongoDB是3.0.0. 初始化数据 启动MongoDB服务 ...

  3. 【Eclipse提高开发速度-插件篇】Eclipse插件安装慢得几个原因

    1.改动"Available Softeware Site" ,降低关联,详细做法 Install New Software >> Available Softewar ...

  4. C#抓取AJAX页面的内容

    原文 C#抓取AJAX页面的内容 现在的网页有相当一部分是采用了AJAX技术,所谓的AJAX技术简单一点讲就是事件驱动吧(当然这种说法可能很不全面),在你提交了URL后,服务器发给你的并不是所有是页面 ...

  5. Floodlight controller 线程池模型

         官方文档对于ThreadPool的描写叙述是:ThreadPool is a Floodlight module wrapper for a Java's ScheduledExecutor ...

  6. DDD分层架构之聚合

    DDD分层架构之聚合 前面已经介绍了DDD分层架构的实体和值对象,本文将介绍聚合以及与其高度相关的并发主题. 我在之前已经说过,初学者第一步需要将业务逻辑尽量放到实体或值对象中,给实体“充血”,这样可 ...

  7. [tarjan] hdu 3836 Equivalent Sets

    主题链接: http://acm.hdu.edu.cn/showproblem.php? pid=3836 Equivalent Sets Time Limit: 12000/4000 MS (Jav ...

  8. 【转】【Android UI设计与开发】第07期:底部菜单栏(二)Fragment的详细介绍和使用方法

    原始地址:http://blog.csdn.net/yangyu20121224/article/category/1431917/1 由于TabActivity在Android4.0以后已经被完全弃 ...

  9. Android项目--tabhost

    所有牵扯到自定义布局的layout中尽量用RelativeLayout 在通讯录中如果像小米手机的UI那就是viewpager,在这里,我们做成静态的.通过tabhost来做. 1.布局 a) 直接用 ...

  10. Strongly connected(hdu4635(强连通分量))

    /* http://acm.hdu.edu.cn/showproblem.php?pid=4635 Strongly connected Time Limit: 2000/1000 MS (Java/ ...