ABP开发手记8 - 应用层创建应用服务
程序员文章站
2023-08-23 12:40:49
点这里进入ABP开发手记目录 创建目录 在应用层(即JD.CRS.Application)下创建文件夹Course //用以存放Course相关应用服务 在JD.CRS.Application/Course下创建文件夹Dto //用以存放Course相关数据传输对象 创建数据传输对象 在JD.CRS ......
创建目录
在应用层(即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 }