[Prodinner项目]学习分享_第三部分_Service层(业务逻辑层)

前两节讲到怎样生成一个Model和怎样将Model映射到数据库,这一节将讲到业务逻辑层,也就是Service层。

[Prodinner项目]学习分享_第三部分_Service层(业务逻辑层)

1.Prodinner架构已经构建好的,基本的增删改查。

假设,我现在想操作第二节中讲到的TB_Instype数据库表,基本的增删改查。

1)我可以不写Service层,直接继承Cruder(Controller),来继承该Controller里封装好的增删改查。

[Prodinner项目]学习分享_第三部分_Service层(业务逻辑层)

2)我们来看一下Cruder里的代码

它是继承自Crudere类。

[Prodinner项目]学习分享_第三部分_Service层(业务逻辑层)

3).我们再看一下Crudere类

可以看到Crudere类,构造时将ICrudService实例化了,且下面一系列的增删改查的Action分别调用了ICrudService里的函数。

[Prodinner项目]学习分享_第三部分_Service层(业务逻辑层)

4).继续看一下ICrudService类

接口在Core类库里,方法名很明确,就是增删改查。

[Prodinner项目]学习分享_第三部分_Service层(业务逻辑层)

5).最后咱们来看一下,这些增删改查是如何实现的

Service类库的CrudService类,代码很明了,增删改查,

至于IRepo,可以查看定义,实现实在Data类库里的Repo类,通过DbContext类来操作数据库的增删改查。

[Prodinner项目]学习分享_第三部分_Service层(业务逻辑层)

6).差点漏掉一点,这里的添加类,编辑类都在WebUI里的Dto文件夹下Input类里

[Prodinner项目]学习分享_第三部分_Service层(业务逻辑层)

2.既然简单的增删改查可以,那么自定义的,需要自定义业务逻辑的,当然也可以。

Example:用户的登录验证

我只需返回用户数或者通过与否即可,不需要返回数据集。

1).首先是要有Person类并且关系映射到数据库,前两节一阐述,这里不加说明。

2).Core层定义接口

[Prodinner项目]学习分享_第三部分_Service层(业务逻辑层)

3).在Service类库中,实现接口。

这里只返回验证通过与否。

[Prodinner项目]学习分享_第三部分_Service层(业务逻辑层)

4).到这就可以在Controller中调用啦。

上一篇:精华 对express中next函数的一些理解


下一篇:UAPStudio授权过期的解决方法,重新授权