【从零开始搭建自己的.NET Core Api框架】(六)泛型仓储的作用
2021-03-22 03:23
标签:搭建 类继承 3.2 soft 目录 源码 closed 基础 model 系列目录 一. 创建项目并集成swagger 1.1 创建 1.2 完善 二. 搭建项目整体架构 三. 集成轻量级ORM框架——SqlSugar 3.1 搭建环境 3.2 实战篇:利用SqlSugar快速实现CRUD 3.3 生成实体类 四. 集成JWT授权验证 五. 实现CORS跨域 六. 集成泛型仓储 源码下载:https://github.com/WangRui321/RayPI_V2.0 之前在集成SqlSugar的时候,我们用Student类作为例子,写了5个基础的接口:获取集合、获取单个、添加、修改、删除,也就是常说的仓储的CRUD了。 Service层的代码是这样的: 而且我们规定,以后每个实体类都必须有这个5个基础接口。 所以,当我们再添加一个实体(比如Teacher)时,在TeacherService中也要写和StudentService几乎一样的代码(其实就是把代码里所有“Student”换成“Teacher”就行了)。 这么多重复代码,显然是不符合程序员的审美的。这个时候使用泛型仓储就再适合不过了。 整体思路是,写一个基类“BaseService”,这个基类是一个抽象的泛型类,然后让每个实体的Service都继承它。 那么当再新建一个Service时,不需要写任何代码,就已经实现了我们需要的那5种基础CRUD了。 在IService层新建一个IBase接口: 该接口是个泛型接口,里面集成了对泛型T的5中基础CRUD操作。 在Service层新建一个BaseService类: 该类为abstract抽象类,只能用来被其他类继承,不能实例化。 然后该类除了之前的获取SqlSugarClient的函数,还了5个集成基础CRUD操作,不一样的是这里不是传的实体类,而是一个泛型T。 下面,我们写一个Teacher的完整的增删改查。 先在数据库新建一张教师表: 然后运行项目,调用我们之前写好的自动生成实体类的接口: 生成的实体类是这样的: 在IService层新建一个ITeacher接口: 跟之前不一样的是,这个接口里不需要再写增删改查的接口了,直接继承IBase,把Teacher传过去,就行了。 在Service层,新建一个TeacherService: 该Service也不要写增删改查,直接继承BaseService就有了。 然后Bussiness层和控制器层这里就不说了,跟之前一样: 运行调试: 没有写任何底层的Service,基础的增删改查就完成了。 【从零开始搭建自己的.NET Core Api框架】(六)泛型仓储的作用 标签:搭建 类继承 3.2 soft 目录 源码 closed 基础 model 原文地址:https://www.cnblogs.com/RayWang/p/9498591.html
1. 根
2. 道
2.1 IService层
using RayPI.Model;
namespace RayPI.IService
{
public interface IBase
2.2 Service层
using RayPI.Model;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
namespace RayPI.Service
{
///
3. 果
文章标题:【从零开始搭建自己的.NET Core Api框架】(六)泛型仓储的作用
文章链接:http://soscw.com/essay/67419.html