ABP开发手记8 - 应用层创建应用服务

Posted it-evan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ABP开发手记8 - 应用层创建应用服务相关的知识,希望对你有一定的参考价值。

点这里进入ABP开发手记目录 

创建目录

在应用层(即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 
Class CourseDto

可写对象

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 
CreateUpdateCourseDto

创建应用服务接口

在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 
ICourseAppService

创建应用服务

在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 
CourseAppService

以上是关于ABP开发手记8 - 应用层创建应用服务的主要内容,如果未能解决你的问题,请参考以下文章

ABP开发手记3 - 解决方案

ABP开发手记1 - 开篇

ABP开发手记2 - 体系架构

ABP开发手记6 - 领域层创建实体

ABP开发手记7 - 基础设施层更新数据库

ABP开发手记9 - 展示层实现增删改查-视图模型