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

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

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

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

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

它是继承自Crudere类。

3).我们再看一下Crudere类

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

4).继续看一下ICrudService类

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

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

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

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

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

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

Example:用户的登录验证

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

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

2).Core层定义接口

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

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

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

[Prodinner项目]学习分享_第三部分_Service层(业务逻辑层)的更多相关文章

  1. [Prodinner项目]学习分享_第四部分(完结篇)_Controller层(控制器)

    Controller作用: 数据从数据库查询出来后,通过一定的业务逻辑,筛选出来一个结果集,我们最终的目的是要将这个结果集在页面中显示的. Controller就是起到这个作用,将业务逻辑层的结果集调 ...

  2. [Prodinner项目]学习分享_第一部分_Model层

    事先声明一下,小弟我是菜鸟一个,在研究大半天之后,基本会开发一些简单的功能了,特此分享一下,也为自己做一个笔记. 项目简介: MVC4 , EF5 , Code First , 多层架构 开发工具:V ...

  3. [Prodinner项目]学习分享_第二部分_Entity到DB表的映射

    1.单纯映射 基本语法为 modelBuilder.Entity<InsType>().ToTable("TB_InsType"); 2.一对多映射(表关系) 实体类B ...

  4. mvc_第一遍_业务逻辑层和模型

    常用的动态网页对象: 之前我们提到了,使用request对象可以获得和用户请求相关的一系列信息.这一节,我们来看看另外两个常用对象的常规用途. response对象:用于向客户回应.最常用的用法类似于 ...

  5. MVC+Ef项目(4) 抽象业务逻辑层BLL层

    接下来,我们就要到业务逻辑层了,简单的说,业务逻辑层就是调用Repository(可以看做是DAL数据库访问层) 先来看看项目的架构 我们现在就开始来做BLL层.  同样,先编写  UserInfoS ...

  6. .Net基础篇_学习笔记_第三天_Convert类型转换

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  7. .Net基础篇_学习笔记_第三天_运算符

    入门编程思想,由传统“算法”引申到“编程”思想 using System; using System.Collections.Generic; using System.Linq; using Sys ...

  8. 一个项目中说系统分为表现层、控制层、逻辑层、DAO层和最终数据库五层架构-转

    表现层就是看到的东西,比如你现在看到的当前页面控制层就将你的请求从页面传到后台代码逻辑层就是处理你的请求的代码DAO层就是将数据存到数据库中的代码数据库就是数据库了,存东西用的 ,DAO层就是将访问数 ...

  9. ASP.NET MVC 开源项目学习之ProDinner (三)

    第四层:Resources   这一层里面主要是几个资源文件. 资源文件知识小杂烩: 几乎每一个生产性应用程序都需要使用资源.资源是在逻辑上由应用程序部署的任何非可执行数据.资源可以在应用程序中作为错 ...

随机推荐

  1. asp

    <%@LANGUAGE="%> <!--#include file="include.asp"--> <meta http-equiv=&q ...

  2. 拒绝IE8-,CSS3 transform rotate旋转动画效果(支持IE9+/chrome/firefox)

    <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta nam ...

  3. phpcms 导航栏点击栏目颜色定位方法和phpcms list页实现分页

    另:一个栏目下面如果没有子栏目,那么它调用的模板就是列表页模板(及list_为前缀的模板):如果一个栏目下面有子栏目,那么它调用的就是栏目首页模板(category_为前缀的模板). 当你这个栏目添加 ...

  4. PHP 多维数组 Key Value的使用

    <?php $user["60"] = array("id" => "60", "num" => &q ...

  5. 在MVC3中修改KindEditor实现图片删除

    编辑器KindEditor可以上传图片,但却不能删除图片,因此我们通过修改一些文件,对KindEditor进行扩展,使得KindEditor能删除服务器上的图片. 主要方法就是:在图片空间中浏览图片, ...

  6. sshpass 用法举例

    关于sshpass 背景 在Linux后台中,经常会用到ssh.scp等命令.需要进行认证,手动输入密码,是交互式的过程. 当将ssh.scp等命令做成自动化脚本时,可能需要非交互式的登录过程,此时可 ...

  7. JMeter学习-019-JMeter 监听器之【聚合报告】界面字段解析及计算方法概要说明

    聚合报告是 JMeter 使用过程中使用率非常高的监听器之一,可通过右键单击,依次选择[添加 / 监听器 / 聚合报告] 来进行添加.执行 JMeter 脚本后,聚合报告显示如下:

  8. 关于asp.net与jquery ajax 的一些补充

    补充1:asp.net 与后台交互除了用之前写得$.ajsx()外 还可以直接使用$.get()  , $.post()等. 补充2:jquery 跨域请求 例如: JSONP 跨域: $.ajax( ...

  9. Unit03 - 对象内存管理 、 继承的意义(上)

    Unit03 - 对象内存管理 . 继承的意义(上) 1.内存管理:由JVM来管理的  1)堆:    1.1)存储所有new出来的对象(包含成员变量)    1.2)没有任何引用所指向的对象就是垃圾 ...

  10. 求文件的m至n行

    #!/usr/bin/env python def read_file(file_name,start,stop): start_line = 0 try: with open(file_name) ...