在前一篇
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 清空。
客户端调用:
运行结果:
分享到:
相关推荐
B3850 [GESP202306 四级] 幸运数2
python模块onnxruntime版本
3063 - Heartlake Flying Club
AUTOSAR_SWS_SAEJ1939DiagnosticCommunicationManager.pdf
AUTOSAR_SWS_MemoryAbstractionInterface.pdf
lrs
B3850 [GESP202306 四级] 幸运数
【硬件开发】说明:485硬件开发时对485硬件模块参考硬件特性 【硬件开发】说明:485硬件开发时对485硬件模块参考硬件特性
Java毕业设计-ssm基于微信平台的校园汉服租赁系统的设计与实现演示录像(高分期末大作业)
别墅图纸编号D068-两层-13.50&14.10米- 施工图-施工说明.dwg
491A111E-B58E-48F4-8342-995B397B4D37-289-00000201845230F5.mov
python模块onnxruntime版本
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
整数方阵外围数字的和
4837 - Mini Trains - Steam Train
计算机网络试卷资源及解析
onnxruntime-1.7.1-cp38-cp38-linux_armv7l.whl.zip
B2030 计算线段长度
本智能物流管理系统有管理员,顾客,员工,店主。功能有个人中心,顾客管理,员工管理,店主管理,门店信息管理,门店员工管理,部门分类管理,订单信息管理,工作日志管理。因而具有一定的实用性。 本站是一个B/S模式系统,采用SSM框架,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得智能物流管理系统管理工作系统化、规范化。本系统的使用使管理人员从繁重的工作中解脱出来,实现无纸化办公,能够有效的提高智能物流管理系统管理效率。 关键词:智能物流管理系统;SSM框架;MYSQL数据库;Spring Boot 管理员模块的实现: 顾客信息管理:智能物流管理系统的系统管理员可以管理顾客信息,可以对顾客信息信息添加修改删除以及查询操作 员工信息管理:系统管理员可以查看对员工信息信息进行添加,修改,删除以及查询操作。 店主模块的实现: 员工信息管理:店主可以对员工信息信息进行修改,删除以及查询操作 门店信息管理:店主可以对门店信息信息进行修改操作,还可以对门店信息信息进行查询。 员工模块的实现: 门店信息管理:员工登录可以查看门店信息 订单信息管理
7140 - X-Wing Fighter.mpd