• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

田九

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

通用的BLL层及DAL层基类

小整的一个通用的BLL层及DAL层基类,可能写得不好,做为代码收集,多多指教

 DAL 的接口

public interface IDAL<TEntity>
    {
        /// <summary>
        /// 增加
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        bool Add(TEntity item);

        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        bool Update(TEntity item);

        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        bool Delete(TEntity item);

        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="objId"></param>
        /// <returns></returns>
        bool Delete(object objId);

        /// <summary>
        /// 获取实体类
        /// </summary>
        /// <param name="objId"></param>
        /// <returns></returns>
        TEntity GetEntity(object objId);

        /// <summary>
        /// 获取所有实体集合
        /// </summary>
        /// <returns></returns>
        IList<TEntity> GetData();

        /// <summary>
        /// 根据条件子句获取实体集合
        /// </summary>
        /// <param name="sqlSubWhere"></param>
        /// <returns></returns>
        IList<TEntity> GetData(string sqlSubWhere);
    }
View Code

BLL的接口

public interface IBLL<TEntity> where TEntity:class,new()
    {
        /// <summary>
        /// 增加
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        bool Add(TEntity item);

        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        bool Update(TEntity item);

        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        bool Delete(TEntity item);

        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="objId"></param>
        /// <returns></returns>
        bool Delete(object objId);

        /// <summary>
        /// 获取实体类
        /// </summary>
        /// <param name="objId"></param>
        /// <returns></returns>
        TEntity GetEntity(object objId);

        /// <summary>
        /// 获取所有实体集合
        /// </summary>
        /// <returns></returns>
        IList<TEntity> GetData();

        /// <summary>
        /// 根据条件子句获取实体集合
        /// </summary>
        /// <param name="sqlSubWhere"></param>
        /// <returns></returns>
        IList<TEntity> GetData(string sqlSubWhere);
    }
View Code

DAL,通用基类

    /// <summary>
    /// 数据访问层的基类
    /// </summary>
    /// <typeparam name="TEntity">实体例</typeparam>
    public abstract class BaseDAL<TEntity> : IDAL<TEntity>
    {
        public IDbHelp dbHelp { get; set; }

        /// <summary>
        /// 增加对象
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        public abstract bool Add(TEntity item);

        /// <summary>
        /// 修改对象
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        public abstract bool Update(TEntity item);
        
        /// <summary>
        /// 删除对象
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        public abstract bool Delete(TEntity item);


        /// <summary>
        /// 删除对象
        /// </summary>
        /// <param name="objId"></param>
        /// <returns></returns>
        public abstract bool Delete(object objId);

        /// <summary>
        /// 获取单个实体
        /// </summary>
        /// <param name="objId"></param>
        /// <returns></returns>
        public abstract TEntity GetEntity(object objId);

        /// <summary>
        /// 获取所有实体
        /// </summary>
        /// <returns></returns>
        public abstract IList<TEntity> GetData();

        /// <summary>
        /// 根据条件获取实体
        /// </summary>
        /// <param name="sqlSubWhere"></param>
        /// <returns></returns>
        public abstract IList<TEntity> GetData(string sqlSubWhere);
    }
View Code

BLL,通用基类

    /// <summary>
    /// 业务逻辑的基类对象
    /// </summary>
    /// <typeparam name="TDAL">数据访问层</typeparam>
    /// <typeparam name="TEntity">实体类</typeparam>
    public class BaseBLL<TDAL, TEntity> : IBLL<TEntity> 
        where TDAL:BaseDAL<TEntity>,new()
        where TEntity:class,new()
    {
        protected IDbHelp db = null;
        protected TDAL dal;
        public BaseBLL(IDbHelp dbHelp)
        {
            db = dbHelp;
            dal = new TDAL();
            dal.dbHelp = dbHelp;
        }

        public bool Add(TEntity item)
        {
            return dal.Add(item);
        }
        public bool Update(TEntity item)
        {
            return dal.Update(item);
        }

        public bool Delete(TEntity item)
        {
            return dal.Delete(item);
        }

        public bool Delete(object objId)
        {
            return dal.Delete(objId);
        }

        public TEntity GetEntity(object objId)
        {
            return dal.GetEntity(objId);
        }

        public IList<TEntity> GetData()
        {
            return dal.GetData();
        }

        public IList<TEntity> GetData(string sqlSubWhere)
        {
            return dal.GetData(sqlSubWhere);
        }


       
    }
View Code

 

 

调用代码如下:

var bll = new BaseBLL<Cfg_Codes_DAL, Cfg_Codes_Entity>(dbHelp);

 

 

posted on 2014-01-09 18:15  考拉田九  阅读(546)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3