DataService系列教程 (一)
之前做了一些小项目,用到了DataService这个数据调用框架,所以根据自己实际理解和网上的一些参考,自己做了一些小随笔,方便以后记忆!
关于ADO.NET Entity Framework部分的内容见ADO.NET Entity Framework(1-4)
http://kb.cnblogs.com/page/43963/
本文例子下载: https://files.cnblogs.com/wxwinter/lz.rar
ADO.NET Data Service介绍
1.ADO.NET Data Service的DataServiceHost是一个WCF Service,由System.Data.Services.DataService提供来自NET3.5 SP1 类库中的System.Data.Services.dll
2.DataServices会自动为加载的Entity对象生成具有增查删改功能的WCF服务
3.DataServices是以Http方式与客户端进行通信.任何可以实现HTTP访问的客户端,都可以与DataServices交互
4. NET3.5 SP1的客户端可以使用System.Data.Services.Client.DataServiceContext与DataServices交互,该类来自NET3.5 SP1 类库中的System.Data.Services.Client.dll 文件
5. Silverlight 2.0客户端可以使用System.Data.Services.Client.DataServiceContext与DataServices交互,该类来自Silverlight 2.0 类库中的System.Data.Services.Client 文件
6.DataServices提供ATOM与JSON两种格式用来描述数据结构,说明如下:
|
1.创建DataService项目
数据表
tabA
c为可空字段,这样设置是为了后面讲可空字段和非空字段的区别;
tabB
z类似;
创建项目:
创建实体模型
生成实体模型:
生成项目:
2. 创建一个数据服务使用EF模型
生成SVC文件后双击打开,在指出位置中写上刚设置的EF实体例子的名称:
1 using System; 2 using System.Collections.Generic; 3 using System.Data.Services; 4 using System.Data.Services.Common; 5 using System.Linq; 6 using System.ServiceModel.Web; 7 using System.Web; 8 9 namespace ServiceDataDemo_Service 10 { 11 public class DataServiceWCF : DataService<EF_Data>/* TODO: 在此放置数据源类名*/ 12 { 13 // 仅调用此方法一次以初始化涉及服务范围的策略。 14 public static void InitializeService(DataServiceConfiguration config) 15 { 16 // TODO: 设置规则以指明哪些实体集和服务操作是可见的、可更新的,等等。 17 // 示例: 18 config.SetEntitySetAccessRule("tab2", EntitySetRights.All); 19 config.SetEntitySetAccessRule("tab1", EntitySetRights.All); 20 //config.SetServiceOperationAccessRule("MyServiceOperation", ServiceOperationRights.All); 21 config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2; 22 config.UseVerboseErrors = true;//返回错误信息 23 24 25 } 26 } 27 }
3.NET客启访问DataService
引用数据服务
右击SVC文件在浏览器中运行,并复制URL:
在项目中添加服务引用,将URL粘入后前往,点击添加:
成功: