当前位置/ List
DevNet帮助中心 >> IDataManager接口说明
DataManager抽象基类

发布日期:2012-08-29       浏览:5337 次
       DataManager抽象基类实现了IDataManager接口定义的所有方法,并且所有方法都可以使用override重写,以实现不同项目的不同需求,做到最大灵活性和可扩展性,更多信息请参阅帮助文件 DevNet在线帮助文档
      类定义
C# Code复制内容到剪贴板
  1. /// <summary>  
  2. /// 数据操作抽象基类 [作为数据层基类以提高代码复用性]  [可重写]  
  3. /// </summary>  
  4. /// <typeparam name="T">泛型对象 通常指数据表实体对象(请继承自EntityBase接口)</typeparam>  
  5. /// <typeparam name="TCondition">条件查询的类实体【如不需要,可以用“object”替代】</typeparam>  
  6. public abstract class DataManager<T,TCondition> : IDataManager<T,TCondition> where T : EntityBase, new()  

     几个重要属性
C# Code复制内容到剪贴板
  1. ScriptQuery script = null;  
  2.  DBConnect con = null;  
  3.   
  4.  /// <summary>  
  5.  /// 获取或设置数据连接对象[可重写]  
  6.  /// </summary>  
  7.  public virtual DBConnect DBCon  
  8.    
  9.  /// <summary>  
  10.  /// 获取ScriptQuery查询类【该类使用参数模式封装了sql语句,提供简单的数据帮助方法】[可重写]  
  11.  /// </summary>  
  12.  public virtual ScriptQuery Script  
  13.   
  14.  private Mapper.DataMapper _dataMapper;  
  15.   
  16.  /// <summary>  
  17.  /// 数据映射对象[可重写]  
  18.  /// </summary>  
  19.  public virtual Mapper.DataMapper Mapper  

    DBCon是整个DevNet框架的数据操作的核心类对象属性,Script是ScriptQuery数据操作帮助类对象属性,这两个属性是该基类的重要的核心属性
    Mapper是数据映射DataMapper类的对象属性,后面会更详细的介绍该属性的使用
    
需要子类实现的共有8个方法,签名如下:
折叠C# Code复制内容到剪贴板
  1. /// <summary>
  2. /// 根据条件对象获取实体集合 【请重写】
  3. /// </summary>
  4. /// <param name="condition">条件实体对象</param>
  5. /// <returns></returns>
  6. public abstract List<T> GetList(TCondition condition);
  7. /// <summary>
  8. /// 根据条件获取实体集合
  9. /// </summary>
  10. /// <param name="condition">条件实体对象</param>
  11. /// <param name="sortFieldName">排序字段</param>
  12. /// <param name="sortEnum">排序字段枚举</param>
  13. /// <returns></returns>
  14. public abstract List<T> GetList(TCondition condition, string sortFieldName, ScriptQuery.SortEnum sortEnum);
  15. /// <summary>
  16. /// 根据条件和分页信息获取实体集合 【请重写】
  17. /// </summary>
  18. /// <param name="condition">条件实体对象</param>
  19. /// <param name="pagination">分页信息实体</param>
  20. /// <returns></returns>
  21. public abstract List<T> GetPageList(TCondition condition, Pagination pagination);
  22. /// <summary>
  23. /// 根据条件和分页信息获取实体集合
  24. /// </summary>
  25. /// <param name="condition">条件实体对象</param>
  26. /// <param name="pagination">分页信息实体</param>
  27. /// <param name="sortFieldName">排序字段</param>
  28. /// <param name="sortEnum">排序字段枚举</param>
  29. /// <returns></returns>
  30. public abstract List<T> GetPageList(TCondition condition, Pagination pagination, string sortFieldName, ScriptQuery.SortEnum sortEnum);
  31. /// <summary>
  32. /// 根据条件对象获取数据表
  33. /// </summary>
  34. /// <param name="condition">条件实体对象</param>
  35. /// <returns></returns>
  36. public abstract DataTable GetTable(TCondition condition);
  37. /// <summary>
  38. /// 根据条件对象获取数据表
  39. /// </summary>
  40. /// <param name="condition">条件实体对象</param>
  41. /// <param name="sortFieldName">排序字段</param>
  42. /// <param name="sortEnum">排序字段枚举</param>
  43. /// <returns></returns>
  44. public abstract DataTable GetTable(TCondition condition, string sortFieldName, ScriptQuery.SortEnum sortEnum);
  45. /// <summary>
  46. /// 根据条件和分页信息获取数据表
  47. /// </summary>
  48. /// <param name="condition">条件实体对象</param>
  49. /// <param name="pagination">分页信息实体</param>
  50. /// <returns></returns>
  51. public abstract DataTable GetPageTable(TCondition condition, Pagination pagination);
  52. /// <summary>
  53. /// 根据条件和分页信息获取数据表
  54. /// </summary>
  55. /// <param name="condition">条件实体对象</param>
  56. /// <param name="pagination">分页信息实体</param>
  57. /// <param name="sortFieldName">排序字段</param>
  58. /// <param name="sortEnum">排序字段枚举</param>
  59. /// <returns></returns>
  60. public abstract DataTable GetPageTable(TCondition condition, Pagination pagination, string sortFieldName, ScriptQuery.SortEnum sortEnum);
    这八个抽象方法需要子类根据泛型TCondtion的条件来实现方法
 
    数据操作相应事件
C# Code复制内容到剪贴板
  1. /// <summary>  
  2. /// Insert前事件  
  3. /// </summary>  
  4. public event InsertHandle BeforeInsert;  
  5. /// <summary>  
  6. /// Insert后事件  
  7. /// </summary>  
  8. public event InsertHandle AfterInsert;  
  9. /// <summary>  
  10. /// Update前事件  
  11. /// </summary>  
  12. public event UpdateHandle BeforeUpdate;  
  13. /// <summary>  
  14. /// Update后事件  
  15. /// </summary>  
  16. public event UpdateHandle AfterUpdate;  
  17. /// <summary>  
  18. /// Delete前事件  
  19. /// </summary>  
  20. public event DeleteHandle BeforeDelete;  
  21. /// <summary>  
  22. /// Delete后事件  
  23. /// </summary>  
  24. public event DeleteHandle AfterDelete;