## 简介
> 工作单元模式是“维护一个被业务事务影响的对象列表，协调变化的写入和并发问题的解决”

它的作用
1. 事务相关
2. 共用连接
...

## 如何使用
依赖注入`IUnitOfWorkManager`，使用`CreateContext`创建一个`IUnitOfWork`工作单元
在工作单元内部，可提交，回滚，获取仓储 
``` cs
        bool IsTran { get; set; }
        bool IsCommit { get; set; }
        bool IsClose { get; set; }

        IRepository<T> GetRepository<T>();
        bool Commit();
```

> 注意，在除Get请求上，其他请求默认都开启了工作单元（post、put、delelte）

## 完整例子
``` cs
        private IUnitOfWorkManager _unitOfWorkManager { get; set; }
        public void Test()
        {
            using (var uow = _unitOfWorkManager.CreateContext())
            {
                //仓储执行各种操作

                //统一提交
                uow.Commit();
            }
        
        }
```
## 特性方式
还可以通过`[UnitOfWork]`特性，打在方法上，该方法便会当作一个事务进行提交
``` cs
        [UnitOfWork]
        public void Test()
        {
         //仓储执行各种操作
        }
```

