## 简介 > 工作单元模式是“维护一个被业务事务影响的对象列表,协调变化的写入和并发问题的解决” 它的作用 1. 事务相关 2. 共用连接 ... ## 如何使用 依赖注入`IUnitOfWorkManager`,使用`CreateContext`创建一个`IUnitOfWork`工作单元 在工作单元内部,可提交,回滚,获取仓储 ``` cs bool IsTran { get; set; } bool IsCommit { get; set; } bool IsClose { get; set; } IRepository GetRepository(); 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() { //仓储执行各种操作 } ```