2020/01/26, ASP.NET Core 3.1, VS2019
摘要: 基于 ASP.NET Core 3.1 webApi 搭建后端多层网站架构 [7 - 编写角色业务的增删改查]
编写最简单的增删改查业务, 涉及到 DI 依赖注入的使用, AutoMapper 的使用, 工作单元与仓储的使用
文章目录 https://www.cnblogs.com/kasnti/p/12236586.html
此分支项目代码
本章节介绍了编写最简单的增删改查业务, 涉及到 DI 依赖注入的使用, AutoMapper 的使用, 工作单元与仓储的使用
类库添加引用
向 MS.Services 类库添加对 MS.Models 项目的引用
BaseService
在 MS.Services 类库中添加 BaseService.cs 类:
- using AutoMapper;
- using MS.DbContexts;
- using MS.UnitOfWork;
- namespace MS.Services
- {
- public interface IBaseService
- {
- }
- public class BaseService : IBaseService
- {
- public readonly IUnitOfWork<MSDbContext> _unitOfWork;
- public readonly IMapper _mapper;
- public BaseService(IUnitOfWork<MSDbContext> unitOfWork, IMapper mapper)
- {
- _unitOfWork = unitOfWork;
- _mapper = mapper;
- }
- }
- }
说明:
新建了 IBaseService 接口, 后面新建的服务接口都要继承自该接口
新建了 BaseService 类, 实现了 IBaseService 接口
可以看到 BaseService 类中, 使用构造函数的方式依赖注入得到了 IUnitOfWork _unitOfWork,IMapper _mapper, 并且是 public 类型, 这样所以继承 BaseService 的类都可以直接使用父类的这两个成员
RoleService
在 MS.Services 类库中新建 Role 文件夹, 在该文件夹下新建 IRoleService.cs,RoleService.cs 类, 注意我这里两个类的命名空间都改为 namespace MS.Services, 而不是默认的 namespace MS.Services.Role
IRoleService 接口
修改 IRoleService 为 public 类型的 interface 接口, 继承自 IBaseService, 并添加 Create,Update,Delete 三个方法:
- using MS.Entities;
- using MS.Models.ViewModel;
- using MS.WebCore.Core;
- using System.Threading.Tasks;
- namespace MS.Services
- {
- public interface IRoleService : IBaseService
- {
- Task<ExecuteResult<Role>> Create(RoleViewModel viewModel);
- Task<ExecuteResult> Update(RoleViewModel viewModel);
- Task<ExecuteResult> Delete(RoleViewModel viewModel);
- }
- }
RoleService 实现
修改 RoleService 为 public 类型, 继承自 BaseService 和 IRoleService 接口, 然后使用快速操作生成构造函数和实现接口
来源: http://www.bubuko.com/infodetail-3398737.html