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

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

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/01/12
们来看看在基类中的实现。查询服务的相关实现

  1. /// <summary>  
  2. /// 查询服务组件  
  3. /// </summary>  
  4. /// <returns></returns>  
  5. protected abstract IQuery GetQuery();  
  6. #region IQuery 成员  
  7. /// <summary>  
  8. /// 查询所有记录  
  9. /// </summary>  
  10. /// <typeparam name="T">泛型模型</typeparam>  
  11. /// <returns></returns>  
  12. public IList<T> GetAll<T>() where T : class,new()  
  13. {  
  14. return GetQuery().GetAll<T>();  
  15. }  
  16. /// <summary>  
  17.  /// 查询满足条件的集合  
  18. /// </summary>  
  19. /// <typeparam name="T"></typeparam>  
  20. /// <param name="whereCondition"></param>  
  21. /// <returns></returns>  
  22. public IList<T> GetListByQuery<T>(WhereCondition whereCondition) where T : class,new()  
  23. {  
  24. return GetQuery().GetAll<T>();  
  25. }  
  26. /// <summary>  
  27. /// 返回总行数  
  28. /// </summary>  
  29. /// <typeparam name="T"></typeparam>  
  30. /// <returns></returns>  
  31. public int GetCount<T>()  
  32.  {  
  33. return GetQuery().GetCount<T>();  
  34. }  
  35. /// <summary>  
  36. /// 返回满足条件的总行数  
  37. /// </summary>  
  38. /// <typeparam name="T"></typeparam>  
  39. /// <param name="whereCondition"></param>  
  40. /// <returns></returns>  
  41. public int GetCount<T>(WhereCondition whereCondition)  
  42. {  
  43.  return GetQuery().GetCount<T>(whereCondition);  
  44. }  
  45. /// <summary>  
  46. /// 根据主键返回对象模型  
  47. /// </summary>  
  48. /// <typeparam name="T"></typeparam>  
  49. /// <param name="key"></param>  
  50. /// <returns></returns>  
  51. public T GetModelByKey<T>(object key) where T : class,new()  
  52. {  
  53. return GetQuery().GetModelByKey<T>(key);  
  54. }  
  55. #endregion 

当然根据不同的数据库可能定义的查询语句的格式不同,但是返回的结果的形式却可以定义成通用的形式。这样我们就可以实现比较通用的查询服务,也有很好

的通用型和扩展性。当然我们这里还可以添加分页的支持等,只是添加的条件有限制,实现方式还是相同。

下面我们来看看数据访问层功能必须职责之事务性,我们都知道事务性的几大特性,通过事务性来提供数据的安全性。我们这里给出一种思路去实现这样的事务

性,我们在数据访问层中定义一组事务单元,通过一个列表维护这些事务单元,当执行提交时,我们将这个事务范围内的所有事务单元进行提交,否则不进行真正的提

交操作。我们来看看吧,我们在之前的IDALIn

网学推荐

免费论文

原创论文

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