ABP入门教程8 - 应用层创建应用服务
2024-09-06 04:47:06
创建目录
在应用层(即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))]
using Abp.Application.Services.Dto;
using Abp.AutoMapper;
using System;
using System.ComponentModel.DataAnnotations; namespace JD.CRS.Course.Dto
{ [AutoMapFrom(typeof(Entitys.Course))]
public class CourseDto : EntityDto<int>
{
/// <summary>
/// 课程编号
/// </summary>
[StringLength()]
public string Code { get; set; }
/// <summary>
/// 院系编号
/// </summary>
[StringLength()]
public string DepartmentCode { get; set; }
/// <summary>
/// 课程名称
/// </summary>
[StringLength()]
public string Name { get; set; }
/// <summary>
/// 课程积分
/// </summary>
[Range(, )]
public int Credits { get; set; }
/// <summary>
/// 备注
/// </summary>
[StringLength()]
public string Remarks { get; set; }
/// <summary>
/// 状态: 0 正常, 1 废弃
/// </summary>
public int? Status { get; set; }
/// <summary>
/// 创建日期
/// </summary>
public DateTime? CreateDate { get; set; }
/// <summary>
/// 创建人
/// </summary>
[StringLength()]
public string CreateName { get; set; }
/// <summary>
/// 修改日期
/// </summary>
public DateTime? UpdateDate { get; set; }
/// <summary>
/// 修改人
/// </summary>
[StringLength()]
public string UpdateName { get; set; } public DateTime CreationTime { get; set; }
}
}
可写对象
CreateUpdateCourseDto.cs //用于创建/修改Course对象
贴上AutoMapTo的特性
[AutoMapTo(typeof(Entitys.Course))]
using Abp.Application.Services.Dto;
using Abp.AutoMapper;
using System;
using System.ComponentModel.DataAnnotations; namespace JD.CRS.Course.Dto
{ [AutoMapTo(typeof(Entitys.Course))]
public class CreateUpdateCourseDto : EntityDto<int>
{
/// <summary>
/// 课程编号
/// </summary>
[StringLength()]
public string Code { get; set; }
/// <summary>
/// 院系编号
/// </summary>
[StringLength()]
public string DepartmentCode { get; set; }
/// <summary>
/// 课程名称
/// </summary>
[StringLength()]
public string Name { get; set; }
/// <summary>
/// 课程积分
/// </summary>
[Range(, )]
public int Credits { get; set; }
/// <summary>
/// 备注
/// </summary>
[StringLength()]
public string Remarks { get; set; }
/// <summary>
/// 状态: 0 正常, 1 废弃
/// </summary>
public int? Status { get; set; }
/// <summary>
/// 创建日期
/// </summary>
public DateTime? CreateDate { get; set; }
/// <summary>
/// 创建人
/// </summary>
[StringLength()]
public string CreateName { get; set; }
/// <summary>
/// 修改日期
/// </summary>
public DateTime? UpdateDate { get; set; }
/// <summary>
/// 修改人
/// </summary>
[StringLength()]
public string UpdateName { get; set; } public DateTime CreationTime { get; set; }
}
}
创建应用服务接口
在JD.CRS.Application/Course下新建项/接口
ICourseAppService.cs
using Abp.Application.Services;
using Abp.Application.Services.Dto;
using JD.CRS.Course.Dto; namespace JD.CRS.Course
{
public interface ICourseAppService : IAsyncCrudAppService<//定义了CRUD方法
CourseDto, //用来展示课程
int, //Course实体的主键
PagedResultRequestDto, //获取课程的时候用于分页
CreateUpdateCourseDto, //用于创建课程
CreateUpdateCourseDto> //用于更新课程
{
}
}
创建应用服务
在JD.CRS.Application/Course下新建项/类
CourseAppService.cs
using Abp.Application.Services;
using Abp.Application.Services.Dto;
using Abp.Domain.Repositories;
using JD.CRS.Course.Dto;
using System.Threading.Tasks; namespace JD.CRS.Course
{
public class CourseAppService : AsyncCrudAppService<Entitys.Course, CourseDto, int, PagedResultRequestDto,
CreateUpdateCourseDto, CreateUpdateCourseDto>, ICourseAppService {
public CourseAppService(IRepository<Entitys.Course, int> repository)
: base(repository)
{ } public override Task<CourseDto> Create(CreateUpdateCourseDto input)
{
var sin = input;
return base.Create(input);
}
}
}
最新文章
- 删除MSSQL数据库中所有表
- Sqool与kettle开源的ETL工具
- WEB开发:如何用js来模拟服务器的ajax响应,不依赖服务器来编写前端代码
- 苹果手机上开发微信公众号(wap)遇到的问题解决方法
- Android Studio上修改项目(module)的包名(Package Name)
- 修改了SpringBoot的主类名称后,gradle build报错的解决办法
- 图解:HTTP 范围请求,助力断点续传、多线程下载的核心原理
- Linux命令大全汇总,让你工作更有效率!
- linux系统安装MongoDB
- jQuery和Zepto冲突问题【解决】
- Ubuntu下开启Mysql远程访问的方法
- java多线程有哪些实际的应用场景?
- 《Java程序设计》第一周学习记录(2)
- 5.7 C++函数调用操作符重载
- 关于MSCOMM.OCX无法正常注册的问题解决
- how to use kvo with swift (怎样在swift中使用kvo)
- thinkphp 无限极分类的数据库设计及效果测试
- 20169205实验一 Java开发环境的熟悉(Linux+IDEA)
- (3)Smali系列学习之Smali语法详解
- JAVA8之lambda表达式详解,及stream中的lambda使用
热门文章
- 2.Android-sdk目录介绍、ADT使用介绍、创建helloworld
- (2018版)webstorm的安装和破解
- Laravel 框架对于分表进行统计合并查询的思路
- 一步一步搭建 Oracle Data Guard
- linux查看磁盘及文件夹大小命令
- 每天3分钟操作系统修炼秘籍(6):Idle进程
- Python-根据照片信息获取用户详细信息(微信发原图或泄露位置信息)
- 易优CMS:switch的基础用法
- Git实战指南----跟着haibiscuit学Git(第七篇)
- dedecmsV5.7 插入记录并返回刚插入数据的自增ID