在前一篇
DataService数据模型(1) 里介绍了如何实现一个内存数据集合的 DataService,接下来研究一下如何实现更新操作。
这里偷了个懒,直接让 DataModel 实现
IDataServiceUpdateProvider接口,而 IDataServiceUpdateProvider 实际继承于 IUpdatable 接口。为了实现数据的增加,修改,删除,主要实现下面几个方法:
PS:实体关联关系的一系列操作,比较复杂,之后讨论。
另外需要提到的是 IDataServiceUpdateProvider接口设计中支持批量特性,这就允许在一个事务中一次更新很多的资源。换句话说可以在SaveChangeds()方法调用前,调用IDataServiceUpdateProvider.SetValue() 或者 CreateResource()多次。这似乎看起来比较简单,但是对接口的实现却影响很大。在某个方法实现上,不可以立即将请求反映到数据源上,而是记录所发生的事情并在最后一次性的提交所有操作。
如果数据存放在数据库中,那么数据库系统会自动的在事务中记录所有的命令操作(比如:Entity Framewok)。但在这个例子中使用了内存对象存放数据,所以需要记录在SaveChanges()前所发生的一切。
因此在 DataModel 中,增加了 List<Action> _actions 来记录 SaveChanges() 之前的操作(请求)。
然后在 CreateResource, SetValue, DeleteResource 时都只是将操作暂存在 _actions 里。
SaveChanges 时 ForEach 所有暂存的 Action,一口气调用。 ClearChanges 则简单的把 _actions 清空。
客户端调用:
运行结果:
分享到:
相关推荐
总结一下,本实例详细介绍了如何使用Windows Service Host开发WCF服务,包括创建服务库、服务宿主项目,添加安装程序,以及调试服务的方法。通过这些步骤,你可以构建出一个完整的、能够在Windows系统中运行的WCF...
总的来说,这个WCF实例教程提供了一个基础的车票预订服务模型,涵盖了服务契约、数据契约、服务实现和宿主的基本概念。对于初学者来说,这是一个很好的起点,可以帮助理解WCF的工作原理及其在实际应用中的使用。通过...
3. **合同**:合同定义了服务提供的操作和服务的行为,分为数据合同(Data Contract)、服务合同(Service Contract)和消息合同(Message Contract)。 4. **绑定**:绑定是客户端和服务之间通信的规范,包括传输...
8. **调试与测试**:通过WCF测试客户端或者自定义测试代码,对服务进行调试和验证。 **三、WCF教程资源** 压缩包中的“WCF实例.pdf”很可能是详尽的教程文档,涵盖了WCF的基本概念、配置、部署以及通过实例演示...
通过这个实例,学习者可以深入理解WCF如何处理数据交换、安全、事务、并发控制等核心概念,并为更复杂的WCF应用打下坚实的基础。同时,了解如何在VS2010环境中调试和测试WCF服务,也是提升开发效率的关键技能。
WCF实例管理的概述,WCF服务实例激活类型三种方式概述和单例服务的完整代码。
2. **服务类声明**:确保你的服务类没有默认的无参构造函数,因为WCF会尝试使用这个构造函数来实例化服务。如果需要在服务初始化时执行特定操作,可以添加一个带参数的构造函数,并在配置文件中指定该构造函数。 3....
10. **扩展性**:WCF Data Service允许自定义行为和功能,比如通过继承`DataService<T>`类来自定义服务行为,或者实现`IDataServiceMetadataProvider`和`IDataServiceQueryProvider`接口来自定义元数据和查询行为。...
在这个“WCF实例(代码)”中,我们将深入理解WCF的基本概念,并通过一个简单的实例来上手实践。** ### WCF基本概念 1. **服务**: WCF中的服务是对外提供功能的逻辑单元,它可以是任何类型的操作集合。服务通过...
2. **数据契约(Data Contract)**:用于序列化和反序列化数据,确保客户端和服务之间数据的传递。数据契约是通过应用`[DataContract]`和`[DataMember]`属性来定义的: ```csharp [DataContract] public class ...
2. **跨平台支持**:WCF支持跨平台通信,这意味着即使合作伙伴使用的是非Windows环境,也可以顺利进行交互。 3. **安全性**:通过使用WCF的安全机制,可以确保敏感数据(如客户信息)在传输过程中的安全性。 4. **...
【WCF实例教程详解】 Windows Communication Foundation (WCF) 是微软.NET Framework中用于构建分布式应用程序的一种框架,它提供了一种统一的方式来进行服务的创建、部署和管理。本教程将逐步介绍如何创建和发布...
为了使自定义类型能够在WCF服务之间传递,它们必须实现ISerializable接口或使用数据契约(DataContract)和数据成员(DataMember)特性进行标记。这样,WCF可以将对象转换为消息格式并在网络上发送,然后在接收端反序列...
ASP.NET 4.0 WCF实例是一个深入理解Windows Communication Foundation(WCF)技术的重要实践案例。WCF是微软提供的一种全面的服务导向架构,用于构建高度互操作的、分布式的、面向服务的应用程序。在这个实例中,...
WCF(Windows Communication Foundation)是微软.NET框架中的一种高级通信技术,用于构建分布式应用程序,它提供了灵活的服务模型,支持多种传输协议、数据编码和安全机制。本实例将深入探讨WCF的配置、编写过程以及...
元数据包含了服务契约(Service Contract)、数据契约(Data Contract)、绑定(Binding)和地址(Endpoint)等关键信息。这些信息使得服务消费者能够了解如何与服务进行交互,例如,客户端如何构造请求消息、服务的...
一个简单的WCF实例,但结构师分为Host,Service,client,将Host与Service分开实现,实例中有相关的配置
在标题“WCF实例开发”中提到的问题“WCF返回table必须赋值tablename”,指的是在使用WCF服务向客户端传递数据库表格数据时,需要确保表格具有一个明确的名称(tablename)。这是因为当数据以DataTable对象的形式被...
4. **行为**:WCF的行为可以控制服务的行为,如服务元数据暴露(允许其他应用发现服务)、实例化策略(单例、多例等)和服务认证等。 5. **配置文件**:在.NET应用程序中,WCF服务的配置通常存储在app.config或web....
**Windows Communication Foundation (WCF) 是微软.NET框架中的一项重要技术,用于构建分布式应用程序,它提供了统一的编程模型,能够创建各种服务并实现跨平台通信。对于初学者来说,掌握WCF的基本概念和实践是非常...