2020/01/26, ASP.NET Core 3.1, VS2019
摘要:基于ASP.NET Core 3.1 WebApi搭建后端多层网站架构【7-编写角色业务的增删改查】
编写最简单的增删改查业务,涉及到DI依赖注入的使用、AutoMapper的使用、工作单元与仓储的使用
本章节介绍了编写最简单的增删改查业务,涉及到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接口,然后使用快速操作生成构造函数和实现接口
来源:https://www.cnblogs.com/kasnti/p/12241095.html