59e51671
“wangming”
1
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
## 简介
> 工作单元模式是“维护一个被业务事务影响的对象列表,协调变化的写入和并发问题的解决”
它的作用
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()
{
//仓储执行各种操作
}
```
|