C# Dapper基本三层架构使用 (三、BLL)

BLL层介绍

  • 业务逻辑层用于做一些有效性验证的工作,以更好的保证程序运行的健壮性。如完成数据添加、修改和查询业务等;不允许指定的文本框中输入空字符串,数据格式是否正确以及数据类型验证;用户权限的合法性判断等;通过以上的诸多判断以决定是否将操作继续向后传递,尽量保证程序的正常运行。
  • 业务逻辑层(Business Logic Layer)无疑是系统架构中体现核心价值的部分。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域(Domain)逻辑有关,很多时候,也将业务逻辑层称为领域层。例如Martin Fowler在《Patterns of Enterprise Application Architecture》一书中,将整个架构分为三个主要的层:表示层、领域层和数据源层。作为领域驱动设计的先驱Eric Evans,对业务逻辑层作了更细致地划分,细分为应用层与领域层,通过分层进一步将领域逻辑与领域逻辑的解决方案分离。
  • 业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。由于层是一种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。如果在分层设计时,遵循了面向接口设计的思想,那么这种向下的依赖也应该是一种弱依赖关系。因而在不改变接口定义的前提下,理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。正因为如此,业务逻辑层的设计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同的角色。对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。依赖与被依赖的关系都纠结在业务逻辑层上,如何实现依赖关系的解耦,则是除了实现业务逻辑之外留给设计师的任务。

在项目BLL类库中添加新类RegionManger.cs

并添加引用

在类中,加入增加数据方法

public static bool Insert(Model.Region region)
{
    return DAL.RegionService.Insert(region);
}

验证数据的方法

public static bool Validate(Model.Region region)
{
    //检测输入数据格式是否正确
    if (region.RegionID <= 0) throw new Exception("ID必须大于0");
    if (region.RegionDescription == "") throw new Exception("区域名称不能为空");

    //查询区域编号是否已经存在     
    Model.Region r = DAL.RegionService.GetById(region.RegionID);
    if (r !=null)
    {
        if (r.RegionID == region.RegionID) throw new Exception("ID已经存在");
    }           

    //查询数据库是否存在相同记录
    if (DAL.RegionService.IfExists(region)) throw new Exception("数据已经存在");
    return true;
}
原文地址:https://www.cnblogs.com/liessay/p/12817466.html