对工作单元——Unit of Work的理解
来源:互联网 发布:gif编辑软件 编辑:程序博客网 时间:2024/05/01 06:13
首先了解工作单元(Unit of Work)的意图:维护受业务影响的对象列表,并且协调变化的写入和解决并发问题。
可以用工作单元来实现事务,工作单元就是记录对象数据变化的对象。只要开始做一些可能对所要记录的对象的数据有影响的操作,就会创建一个工作单元去记录这些变化,所以,每当创建、修改、或删除一个对象的时候,就会通知工作单元。
工作单元的关键就是在commit操作中由它决定要做什么:打开一个系统事务(数据库事务),做并发检查,最后向数据库写入所做的修改。工作单元需要知道它应该记录哪些对象,以及如何记录。有3中方式:
调用者注册;
对象自身注册;
Repository注册。
一般采用Repository注册方式来实现工作单元,这样,业务对象完全不关注数据持久化的机制和数据跟踪策略。
IUnitOfWork接口包括新增、更新、删除的register操作,以及一个commit操作
UnitOfWork类实现了IUnitOfWork接口,实现了该接口的4个方法,同时维持了3个映射数组,分别为addedEntities数组、changedEntities数组和removedEntities数组,数组的元素为:< EntityBase, IUnitOfWorkRepository >,即实体和仓储的映射。
实现的前3个方法实际上就是分别向这3个数组中添加映射元素。
实现Commit()方法,主要是运用事务机制,遍历3个数组。对每个数组中的每个映射元素的操作为:(以删除为例)调用removedEntities[entity].PersistDeletedItem(entity);
找到entity对应的repository,并调用该repository的Delete持久化方法。当对这3个数组内的所有元素执行完持久化操作后,作为一个事务提交,若中间出现差错,则回滚。
这样,一个事务就执行完毕了。
- 对工作单元——Unit of Work的理解
- Unit Of Work--工作单元
- Axon Framework工作单元,The Unit of Work
- LUW (Logical Unit of Work)
- Unit of Work in ORM
- Unit of work, Transactions and Grails
- 企业模式之Unit Of Work模式
- 企业模式之Unit Of Work模式
- 对CMMI两个功能单元的理解
- 对工作的理解
- 对工作的理解
- Entity Framework Repository & Unit Of Work T4 Template on CodePlex
- Unit Of Work Pattern(ORM Transaction Controller) Implementation Sample
- SQLSERVER Negative SQL Server SPIDs(Unit of Work ID)
- 单元的工作空间
- 我对工作的理解
- 音乐本体中对work的定义和理解
- 工作说明书SOW(Statement Of Work)
- Hibernate框架学习(简介)
- struts2.xml
- 示波器的触发源和触发方式
- Python学习笔记(三)函数初识和内置函数
- 第05章 数组 03 练习1
- 对工作单元——Unit of Work的理解
- 圆周率的存在
- list和vector区别
- 深入理解Javascript之this关键字
- 01.联系方式验证
- linux shell 终端快捷键
- 02.身份证验证
- 程序员修炼之路(三)一个清华大学毕业生做猎头的感受(转)
- C#对Excel的一些操作【一】