『Spring.NET+NHibernate+泛型』框架搭建之BLL(四)

『Spring.NET+NHibernate+泛型』框架搭建之BLL(四)

分类:Spring.NET+NHibernate+泛型

本节讲解业务逻辑层BLL。很简单和DAO层类似,通过泛型封装相似的功能到父类,其他子类继承父类即可,具体看下面操作。

一、业务逻辑接口层IBLL

1. 在解决方案上右键新建一个类库,命名为IBLL,用来存放业务逻辑接口层代码,并添加引用实体层Model,数据库访问接口层IDAO;

2. 在类库中添加一个父接口,命名为IBLL,并定义常用的方法,代码如下:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using IDAO;namespace IBLL{public interface IBLL<T>{IDAO<T> Dao { get; set; }/// <summary>/// 添加实体/// </summary>/// <param name="entity"></param>int Add(T entity);/// <summary>/// 修改实体/// </summary>/// <param name="entity"></param>void Update(T entity);/// <summary>/// 保存或修改实体/// </summary>/// <param name="customer"></param>void SaveOrUpdate(IList<T> list);/// <summary>/// 删除实体/// </summary>/// <param name="entity"></param>void Delete(T entity);/// <summary>/// 按条件删除/// </summary>/// <param name="sqlWhere">删除条件</param>void Delete(string sqlWhere);/// <summary>/// 根据ID得到实体/// </summary>/// <param name="id"></param>/// <returns></returns>T Get(int id);/// <summary>/// 根据ID得到实体/// </summary>/// <param name="id"></param>/// <returns></returns>T Load(int id);/// <summary>/// 得到所有实体/// </summary>/// <returns></returns>IList<T> LoadAll();/// <summary>/// 按条件排序得到前N条记录/// </summary>/// <param name="top">获取条数</param>/// <param name="field">排序字段</param>/// <param order="field">排序方式,,升序asc,降序desc</param>/// <returns></returns>IList<T> QueryTop(int top, string field, string order = "asc");/// <summary>/// 根据条件得到实体/// </summary>/// <param name="sqlWhere">查询条件</param>/// <returns></returns>IList<T> Where(string sqlWhere="");/// <summary>/// 得到统计数量/// </summary>/// <param name="strWhere">查询条件</param>/// <returns></returns>int GetRecordCount(string strWhere = "");/// <summary>/// 分页获取数据列表/// </summary>/// <param name="PageSize">每页获取数据条数</param>/// <param name="PageIndex">当前页是第几页</param>/// <param name="strWhere">查询条件</param>/// <returns></returns>IList<T> GetPageList(int PageSize, int PageIndex, string strWhere = "");/// <summary>/// 根据数据字典父编码和编码获取名称/// </summary>/// <param name="parentNumber">父编码</param>/// <param name="number">编码</param>/// <returns></returns>string GetName(string parentNumber, string number);/// <summary>/// 获取该父编码下最大编码/// </summary>/// <param name="parentNumber">父编码</param>/// <returns></returns>string GetMaxNumber(string parentNumber);}}

3.定义好了父接口,下面定义子接口,还是以IT_RoleBLL为例,代码如下:

using System;using Model;namespace IBLL{public interface IT_RoleBLL : IBLL<T_Role>{}}

这样,IT_RoleBLL就拥有了IBLL定义了的方法,如果IT_RoleBLL有特殊方法,直接添加在IT_RoleBLL里面即可,以IT_AreaBLL为例,代码如下:

using Model;using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace IBLL{public interface IT_AreaBLL : IBLL<T_Area>{int GenerateAreaNumber(string parentNumber);}}

最后,我们看一下IBLL层的目录结构:



版权声明:本文为博主原创文章,未经博主允许不得转载。

上一篇『Spring.NET+NHibernate+泛型』框架搭建之DAO(三)★

顶0踩0

却又小到连一粒嫉妒的沙石也不能容纳

『Spring.NET+NHibernate+泛型』框架搭建之BLL(四)

相关文章:

你感兴趣的文章:

标签云: