当前位置: 网学 > 编程文档 > 其他类别 > 正文

系统架构师谈企业应用架构之数据访问层

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/01/12
terface中已经定义了事务相关的几个方法,我们这里同样抽出来,进行分解,抽出来一个单独的接口ITransation,具体

代码如下:

  1. public interface ITransaction  
  2. {  
  3. /// <summary>  
  4. /// 是否事务执行  
  5. /// </summary>  
  6. bool IsTransaction  
  7. {  
  8. get;  
  9.  }  
  10. /// <summary>  
  11. /// 开始事务  
  12. /// </summary>  
  13. void BeginTransaction();  
  14. /// <summary>  
  15. /// 提交事务  
  16. /// </summary>  
  17. void Commit();  
  18. /// <summary>  
  19. /// 回滚事务  
  20. /// </summary>  
  21.  void Rollback();  

基类中的代码如下:

  1. #region ITransaction  
  2. /// <summary>  
  3. /// 是否事务执行  
  4. /// </summary>  
  5. public bool IsTransaction  
  6. {  
  7. get 
  8. {  
  9. return GetTransaction().IsTransaction;  
  10. }  
  11. }  
  12. /// <summary>  
  13. /// 开始事务  
  14. /// </summary>  
  15. public void BeginTransaction()  
  16. {  
  17. GetTransaction().BeginTransaction();  
  18. }  
  19. /// <summary>  
  20. /// 提交事务  
  21. /// </summary>  
  22.  public void Commit()  
  23. {  
  24. GetTransaction().Commit();  
  25. }  
  26. /// <summary>  
  27. /// 回滚事务  
  28. /// </summary>  
  29. public void Rollback()  
  30. {  
  31. GetTransaction().Rollback();  
  32.  }  
  33. /// <summary>  
  34. /// 返回事务单元列表  
  35. /// </summary>  
  36. List<TransationUnit> list  
  37. {  
  38. get;  
  39. }  
  40. /// <summary>  
  41. /// 执行事务单元的操作,执行数据操作并提交  
  42. /// </summary>  
  43. /// <param name="unit"></param>  
  44. void Excute(TransationUnit unit);  
  45. #endregion  
  46. /// <summary>  
  47. /// 事务组件服务  
  48. /// </summary>  
  49. /// <returns></returns>  
  50.  protected abstract ITransaction GetTransaction(); 

事务组件中添加了特殊的事务单元,用来存储事务执行的操作CUD,还有就是要事务执行的数据对象,当然事务对象中的CRD操作就是使用前面讲解的CRD操作

的方式,我们来看看吧,我们来看看事务单元的形式。

  1. /// <summary>  
  2. /// 事务单元  
  3. /// </summary>  
  4. public class TransationUnit  
  5. {  
  6.  /// <summary>  
  7. /// CUD枚举  
  8. /// </summary>  
  9. public enum CUDEnum  
  10. {  
  11. Create,  
  12. Update,  
  13. Delete  
  14. }  
  15. private CUDEnum _cudType;  
  16. private object _model;  
  17. public TransationUnit(object model, CUDEnum cudType)  
  18. {  
  19. _model = model;  
  20. _cudType = cudType;  
  21. }  

我们在事务处理中,我们只执行事务列表中的操作,置于非事务列表中的单元我们将不做任何处理,所以我们只要是事务执行的事

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号