当前位置/ List
DevNet帮助中心 >> IDataManager接口说明
IDataManager接口定义

发布日期:2012-07-07       浏览:5462 次
IDataManager接口定义了数据层操作的大部分方法,包括常用的CRUD操作,及Relation关系表的操作的方法定义,DataManager实现了该接口,通过使用重载来增加操作功能,并且所有的方法都是虚方法,都可以在子类重写以满足不同项目的需求。
这里列举DataManager抽象基类中几个需要子类实现的定义说明,更多帮助信息请参阅 DevNet在线帮助文档
接口声明定义如下:
C# Code复制内容到剪贴板
  1. /// <summary>  
  2. /// 数据管理接口 提供基本的数据操作方法  
  3. /// </summary>  
  4. /// <typeparam name="T">泛型对象 通常指数据表实体对象</typeparam>  
  5. /// <typeparam name="TCondition">条件查询的类实体【如不需要,可以用“object”替代】</typeparam>  
  6. public interface IDataManager<T, TCondition> : IDisposable, ICloneable where T : class  
接口声明中包含泛型实体T和泛型查询条件TCondition,其中T为类Class

需要子类实现的共有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.   
  8.        /// <summary>  
  9.        /// 根据条件获取实体集合  
  10.        /// </summary>  
  11.        /// <param name="condition">条件实体对象</param>  
  12.        /// <param name="sortFieldName">排序字段</param>  
  13.        /// <param name="sortEnum">排序字段枚举</param>  
  14.        /// <returns></returns>  
  15.        public abstract List<T> GetList(TCondition condition, string sortFieldName, ScriptQuery.SortEnum sortEnum);  
  16.       /// <summary>  
  17.        /// 根据条件和分页信息获取实体集合  【请重写】  
  18.        /// </summary>  
  19.        /// <param name="condition">条件实体对象</param>  
  20.        /// <param name="pagination">分页信息实体</param>  
  21.        /// <returns></returns>  
  22.        public abstract List<T> GetPageList(TCondition condition, Pagination pagination);  
  23.   
  24.        /// <summary>  
  25.        /// 根据条件和分页信息获取实体集合  
  26.        /// </summary>  
  27.        /// <param name="condition">条件实体对象</param>  
  28.        /// <param name="pagination">分页信息实体</param>  
  29.        /// <param name="sortFieldName">排序字段</param>  
  30.        /// <param name="sortEnum">排序字段枚举</param>  
  31.        /// <returns></returns>  
  32.        public abstract List<T> GetPageList(TCondition condition, Pagination pagination, string sortFieldName, ScriptQuery.SortEnum sortEnum);  
  33.        /// <summary>  
  34.        /// 根据条件对象获取数据表  
  35.        /// </summary>  
  36.        /// <param name="condition">条件实体对象</param>  
  37.        /// <returns></returns>  
  38.        public abstract DataTable GetTable(TCondition condition);  
  39.   
  40.        /// <summary>  
  41.        /// 根据条件对象获取数据表  
  42.        /// </summary>  
  43.        /// <param name="condition">条件实体对象</param>  
  44.        /// <param name="sortFieldName">排序字段</param>  
  45.        /// <param name="sortEnum">排序字段枚举</param>  
  46.        /// <returns></returns>  
  47.        public abstract DataTable GetTable(TCondition condition, string sortFieldName, ScriptQuery.SortEnum sortEnum);  
  48.       /// <summary>  
  49.        /// 根据条件和分页信息获取数据表   
  50.        /// </summary>  
  51.        /// <param name="condition">条件实体对象</param>  
  52.        /// <param name="pagination">分页信息实体</param>  
  53.        /// <returns></returns>  
  54.        public abstract DataTable GetPageTable(TCondition condition, Pagination pagination);  
  55.   
  56.        /// <summary>  
  57.        /// 根据条件和分页信息获取数据表  
  58.        /// </summary>  
  59.        /// <param name="condition">条件实体对象</param>  
  60.        /// <param name="pagination">分页信息实体</param>  
  61.        /// <param name="sortFieldName">排序字段</param>  
  62.        /// <param name="sortEnum">排序字段枚举</param>  
  63.        /// <returns></returns>  
  64.        public abstract DataTable GetPageTable(TCondition condition, Pagination pagination, string sortFieldName, ScriptQuery.SortEnum sortEnum);  

这八个抽象方法需要子类根据泛型TCondtion的条件来实现方法
事件定义如下:
折叠C# Code复制内容到剪贴板
  1. #region ====事件====  
  2.  /// <summary>  
  3.  /// Insert前事件  
  4.  /// </summary>  
  5.  event InsertHandle BeforeInsert;  
  6.  /// <summary>  
  7.  /// Insert后事件  
  8.  /// </summary>  
  9.  event InsertHandle AfterInsert;  
  10.  /// <summary>  
  11.  /// Update前事件  
  12.  /// </summary>  
  13.  event UpdateHandle BeforeUpdate;  
  14.  /// <summary>  
  15.  /// Update后事件  
  16.  /// </summary>  
  17.  event UpdateHandle AfterUpdate;  
  18.  /// <summary>  
  19.  /// Delete前事件  
  20.  /// </summary>  
  21.  event DeleteHandle BeforeDelete;  
  22.  /// <summary>  
  23.  /// Delete后事件  
  24.  /// </summary>  
  25.  event DeleteHandle AfterDelete;  
  26.  
  27.  #endregion  
这些事件为数据层操作数据时响应的事件