业务逻辑层的构建
业务类基类BaseService
using System;
using System.Linq;
using System.Linq.Expressions;
using PMS.DALFactory;
using PMS.IDAL;
namespace PMS.BLL
{
public abstract class BaseService<T> where T:class,new()
{
public IDbSession CurrentDbSession
{
get
{
return new DbSession();
}
}
public IBaseDal<T> CurrentDal { get; set; }
public abstract void SetCurrentDal();
public BaseService()
{
SetCurrentDal();//子类一定要实现抽象方法,以指明当前类的子类类型。
}
/// <summary>
/// 查询过滤
/// </summary>
/// <param name="whereLambda"></param>
/// <returns></returns>
public IQueryable<T> LoadEntities(Expression<Func<T, bool>> whereLambda)
{
return CurrentDal.LoadEntities(whereLambda);
}
/// <summary>
/// 分页
/// </summary>
/// <typeparam name="s"></typeparam>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="totalCount"></param>
/// <param name="whereLambda"></param>
/// <param name="orderbyLambda"></param>
/// <param name="isAsc"></param>
/// <returns></returns>
public IQueryable<T> LoadPageEntities<s>(int pageIndex, int pageSize, out int totalCount, Expression<Func<T, bool>> whereLambda,
Expression<Func<T, s>> orderbyLambda, bool isAsc)
{
return CurrentDal.LoadPageEntities<s>(pageIndex, pageSize, out totalCount, whereLambda, orderbyLambda, isAsc);
}
/// <summary>
/// 删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
public bool DeleteEntity(T entity)
{
CurrentDal.DeleteEntity(entity);
return CurrentDbSession.SaveChanges();
}
/// <summary>
/// 编辑
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
public bool EditEntity(T entity)
{
CurrentDal.EditEntity(entity);
return CurrentDbSession.SaveChanges();
}
/// <summary>
/// 添加数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
public T AddEntity(T entity)
{
CurrentDal.AddEntity(entity);
CurrentDbSession.SaveChanges();
return entity;
}
}
}
UserService类:
using PMS.IBLL;
using PMS.Model;
namespace PMS.BLL
{
public partial class UserService : BaseService<User>
{
public override void SetCurrentDal()
{
CurrentDal = CurrentDbSession.UserDal;
}
}
}
业务逻辑接口层的构建
直接建立对应的接口并使用UserService类实现IUserService接口








