Blame view

泰额版/Food Labeling Management Code/Yi.Doc.Md/02.框架功能模块教程/10.工作单元.md 1.2 KB
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()
          {
           //仓储执行各种操作
          }
  ```