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))]
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);
}
}
}
ABP入门教程8 - 应用层创建应用服务的更多相关文章
- ABP入门教程0 - 目录
ABP入门教程 本教程主要讲解如何基于ABP实现CURD(增删改查)示例. 源码已分享: GitHub Gitee ABP入门教程0 - 目录 ABP入门教程1 - 开篇 ABP入门教程2 - ...
- ABP入门教程6 - 领域层创建实体
点这里进入ABP入门教程目录 创建实体 在领域层(即JD.CRS.Core)下新建文件夹Entitys //用以存放实体对象添加一个实体类Course.cs //课程信息 using Abp.Doma ...
- ABP(现代ASP.NET样板开发框架)系列之2、ABP入门教程
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之2.ABP入门教程 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...
- 基于DDD的现代ASP.NET开发框架--ABP系列之2、ABP入门教程
基于DDD的现代ASP.NET开发框架--ABP系列之2.ABP入门教程 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boi ...
- ABP入门教程
ABP入门教程 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应 ...
- ABP入门教程3 - 解决方案
点这里进入ABP入门教程目录 创建项目 点这里进入ABP启动模板 如图操作,我们先生成一个基于.NET Core的MPA(多页面应用).点击"Create my project!" ...
- ABP入门教程1 - 开篇
点这里进入ABP入门教程目录 基于DDD的现代ASP.NET开发框架 - ABP ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET ...
- ABP入门教程15 - 小结
点这里进入ABP入门教程目录 效果预览 至此,ABP入门教程的CURD(增删改查)示例已完成,效果如下 登录 首页 查询课程 新增课程 修改课程 删除课程 阶段总结 关键步骤: 领域层创建实体基础设施 ...
- ABP入门教程2 - 体系架构
点这里进入ABP入门教程目录 介绍 应用程序代码库的分层是一种广泛接受的技术,可帮助降低复杂性并提高代码可重用性.为了实现分层体系结构,ASP.NET Boilerplate遵循域驱动设计的原理. D ...
随机推荐
- 云原生技术之Docker入门
1. 为什么需要容器? 下图是一个比较传统的软件架构 做过java的同学可能对上图的架构方式比较了解,我们通常会将一个应用程序生成一个war包,放到一个tomcat容器当中并在一台虚拟机(VM)中启动 ...
- 轻松玩转windows之redis实战
Redis是一个常用的键值对数据库.本篇分享一下如何轻松在睿江云上实现基于windows的redis开发环境. 1. 登录睿江云 点击右上角登录框 进入登录页面,输入账号密码登录 进入控制台, ...
- 关于css布局的记录(三) --布局实战
1.经典布局,上头下尾,两侧固定,中间自适应 效果图: 实现代码(普通): <!DOCTYPE html> <html lang="en"> <hea ...
- Mysql字符串截取_获取指定字符串中的数据
前言:本人遇到一个需求,需要在MySql的字段中截取一段字符串中的特定字符,类似于正则表达式的截取,苦于没有合适的方法,百度之后终于找到一个合适的方法:substring_index('www.sql ...
- C# -- LinkedList的使用
C# -- LinkedList的使用 private static void TestLinkList() { LinkedList<Person> linkListPerson = n ...
- zuul实现的限流
限流一般可以根据客户端IP,请求的URL,用户登陆信息进行限制,每秒钟限制多次数,这从别一方面也提升了系统的性能,无用的并发没那么多了. 依赖包 <dependency> <grou ...
- spark shell操作
RDD有两种类型的操作 ,分别是Transformation(返回一个新的RDD)和Action(返回values). 1.Transformation:根据已有RDD创建新的RDD数据集build ...
- JS基础语法---String(字符串的案例)
练习1: var str = "我的宝宝最可爱,声音嗲嗲的"; var key = "可爱"; //先获取要截取的字符串的索引位置 var index = st ...
- PWA 学习笔记(五)
离线与缓存 资源请求的拦截代理: 1.资源请求的判断: (1)fetch 事件会拦截页面上所有的网络资源请求,但我们通常只对部分资源请求进行处理, 其余的请求会继续走浏览器默认的资源请求流程 (2)f ...
- sql server日期转换为dd-mon-yyyy和dd-MMM-yyyy这样的英文月份格式(27-Aug-2019)
脚本: /* 功能:sql server日期转换为dd-mon-yyyy和dd-MMM-yyyy这样的格式 示例:27-Aug-2019 作者:zhang502219048 脚本来源:https:// ...