ABP开发手记8 - 应用层创建应用服务
Posted it-evan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ABP开发手记8 - 应用层创建应用服务相关的知识,希望对你有一定的参考价值。
创建目录
在应用层(即JD.CRS.Application)下新建文件夹Course //用以存放Course相关应用服务
在JD.CRS.Application/Course下新建文件夹Dto //用以存放Course相关数据传输对象
创建数据传输对象
在JD.CRS.Application/Course/Dto下新建两个Dto
只读对象
CourseDto.cs //用于查询Course对象
贴上AutoMapFrom的特性
[AutoMapFrom(typeof(Entitys.Course))]
1 using Abp.Application.Services.Dto; 2 using Abp.AutoMapper; 3 using System; 4 using System.ComponentModel.DataAnnotations; 5 6 namespace JD.CRS.Course.Dto 7 8 9 [AutoMapFrom(typeof(Entitys.Course))] 10 public class CourseDto : EntityDto<int> 11 12 /// <summary> 13 /// 课程编号 14 /// </summary> 15 [StringLength(50)] 16 public string Code get; set; 17 /// <summary> 18 /// 院系编号 19 /// </summary> 20 [StringLength(50)] 21 public string DepartmentCode get; set; 22 /// <summary> 23 /// 课程名称 24 /// </summary> 25 [StringLength(150)] 26 public string Name get; set; 27 /// <summary> 28 /// 课程积分 29 /// </summary> 30 [Range(0, 5)] 31 public int Credits get; set; 32 /// <summary> 33 /// 备注 34 /// </summary> 35 [StringLength(200)] 36 public string Remarks get; set; 37 /// <summary> 38 /// 状态: 0 正常, 1 废弃 39 /// </summary> 40 public int? Status get; set; 41 /// <summary> 42 /// 创建日期 43 /// </summary> 44 public DateTime? CreateDate get; set; 45 /// <summary> 46 /// 创建人 47 /// </summary> 48 [StringLength(50)] 49 public string CreateName get; set; 50 /// <summary> 51 /// 修改日期 52 /// </summary> 53 public DateTime? UpdateDate get; set; 54 /// <summary> 55 /// 修改人 56 /// </summary> 57 [StringLength(50)] 58 public string UpdateName get; set; 59 60 public DateTime CreationTime get; set; 61 62
可写对象
CreateUpdateCourseDto //用于创建/修改Course对象
贴上AutoMapTo的特性
[AutoMapTo(typeof(Entitys.Course))]
1 using Abp.Application.Services.Dto; 2 using Abp.AutoMapper; 3 using System; 4 using System.ComponentModel.DataAnnotations; 5 6 namespace JD.CRS.Course.Dto 7 8 9 [AutoMapTo(typeof(Entitys.Course))] 10 public class CreateUpdateCourseDto : EntityDto<int> 11 12 /// <summary> 13 /// 课程编号 14 /// </summary> 15 [StringLength(50)] 16 public string Code get; set; 17 /// <summary> 18 /// 院系编号 19 /// </summary> 20 [StringLength(50)] 21 public string DepartmentCode get; set; 22 /// <summary> 23 /// 课程名称 24 /// </summary> 25 [StringLength(150)] 26 public string Name get; set; 27 /// <summary> 28 /// 课程积分 29 /// </summary> 30 [Range(0, 5)] 31 public int Credits get; set; 32 /// <summary> 33 /// 备注 34 /// </summary> 35 [StringLength(200)] 36 public string Remarks get; set; 37 /// <summary> 38 /// 状态: 0 正常, 1 废弃 39 /// </summary> 40 public int? Status get; set; 41 /// <summary> 42 /// 创建日期 43 /// </summary> 44 public DateTime? CreateDate get; set; 45 /// <summary> 46 /// 创建人 47 /// </summary> 48 [StringLength(50)] 49 public string CreateName get; set; 50 /// <summary> 51 /// 修改日期 52 /// </summary> 53 public DateTime? UpdateDate get; set; 54 /// <summary> 55 /// 修改人 56 /// </summary> 57 [StringLength(50)] 58 public string UpdateName get; set; 59 60 public DateTime CreationTime get; set; 61 62
创建应用服务接口
在JD.CRS.Application/Course下新建ICourseAppService.cs
1 using Abp.Application.Services; 2 using Abp.Application.Services.Dto; 3 using JD.CRS.Course.Dto; 4 5 namespace JD.CRS.Course 6 7 public interface ICourseAppService : IAsyncCrudAppService<//定义了CRUD方法 8 CourseDto, //用来展示课程 9 int, //Course实体的主键 10 PagedResultRequestDto, //获取课程的时候用于分页 11 CreateUpdateCourseDto, //用于创建课程 12 CreateUpdateCourseDto> //用于更新课程 13 14 15
创建应用服务
在JD.CRS.Application/Course下新建CourseAppService.cs
1 using Abp.Application.Services; 2 using Abp.Application.Services.Dto; 3 using Abp.Domain.Repositories; 4 using JD.CRS.Course.Dto; 5 using System.Threading.Tasks; 6 7 namespace JD.CRS.Course 8 9 10 public class CourseAppService : AsyncCrudAppService<Entitys.Course, CourseDto, int, PagedResultRequestDto, 11 CreateUpdateCourseDto, CreateUpdateCourseDto>, ICourseAppService 12 13 14 15 public CourseAppService(IRepository<Entitys.Course, int> repository) 16 : base(repository) 17 18 19 20 21 public override Task<CourseDto> Create(CreateUpdateCourseDto input) 22 23 var sin = input; 24 return base.Create(input); 25 26 27
以上是关于ABP开发手记8 - 应用层创建应用服务的主要内容,如果未能解决你的问题,请参考以下文章