ABP入门教程(二)添加一个实体和服务
1,在领域层(Core)添加一个实体
[Table("Department")]public class Department : FullAuditedEntity{[Required][StringLength(64)]public string Code { get; set; }[Required][StringLength(128)]public string Name { get; set; }}
2,在基础层(EntityFrameworkCore)的类AbpDemoDbContext添加数据集
public class Core3DemoDbContext : AbpZeroDbContext<Tenant, Role, User, Core3DemoDbContext>{/* Define a DbSet for each entity of the application */public DbSet<Department> Departments { get; set; }public Core3DemoDbContext(DbContextOptions<Core3DemoDbContext> options): base(options){}}
3,数据迁移可以在数据库自动建表, 但是个人推荐手动写脚本建表
CREATE TABLE [Department] ([Id] int NOT NULL IDENTITY,[CreationTime] datetime2 NOT NULL,[CreatorUserId] bigint NULL,[LastModificationTime] datetime2 NULL,[LastModifierUserId] bigint NULL,[IsDeleted] bit NOT NULL,[DeleterUserId] bigint NULL,[DeletionTime] datetime2 NULL,[Code] nvarchar(64) NOT NULL,[Name] nvarchar(128) NOT NULL,CONSTRAINT [PK_Department] PRIMARY KEY ([Id])
);
4,先在应用层(Application)写一个最简单的服务
public class DepartmentAppService : Core3DemoAppServiceBase{public string SayHello(){return "hello";}}
运行项目打开Swagger我们可以测试这个接口
5,在应用层开发增删改查功能
如下图添加Dto 和 Profile 并修改DepartmentAppService类继承AsyncCrudAppService
代码分别如下
public class CreateDepartmentDto{public string Code { get; set; }public string Name { get; set; }}public class DepartmentDto : EntityDto{public string Code { get; set; }public string Name { get; set; }}public class PagedDepartmentResultRequestDto : PagedResultRequestDto{public string Code { get; set; }public string Name { get; set; }}public class DepartmentMapProfile : Profile{public DepartmentMapProfile(){CreateMap<DepartmentDto, Department>();CreateMap<CreateDepartmentDto, Department>();CreateMap<Department, DepartmentDto>();}}public class DepartmentAppService : AsyncCrudAppService<Department, DepartmentDto, int, PagedDepartmentResultRequestDto, CreateDepartmentDto, DepartmentDto>{public DepartmentAppService(IRepository<Department, int> repository) : base(repository){}public string SayHello(){return "hello";}}
运行项目,查询Swagger可以看到增删改查的接口已经有了, 试一下
增删改查应该都可以了,如果有错误可以查看Web.Host\App_Data\Logs下面的日志排查问题: 例如没有在数据库建表等等
ABP入门教程(二)添加一个实体和服务相关推荐
- ABP入门教程(三)添加一个领域层和一个应用层
1 添加一个领域层 前言: ABP自带的Core层我们一般不会修改, 为了项目结构更加清晰建议添加一个Core层, 存放与业务有关的实体 1,在src目录下新建一个项目,类库,例如叫AbpDemo.C ...
- python爬虫入门教程(二):开始一个简单的爬虫
2019/10/28更新 使用Python3,而不再是Python2 转载请注明出处:https://blog.csdn.net/aaronjny/article/details/77945329 爬 ...
- ABP(现代ASP.NET样板开发框架)系列之2、ABP入门教程
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之2.ABP入门教程 ABP是"ASP.NET Boilerplate Project (ASP.NET样 ...
- Android WebRTC 入门教程(二) -- 模拟p2p本地视频传输
Android WebRTC 入门教程(一) – 使用相机 Android WebRTC 入门教程(二) – 模拟p2p本地视频传输 源码工程: https://github.com/LillteZh ...
- LittleVGL (LVGL)干货入门教程二之LVGL的输入设备(indev)API对接。
LittleVGL (LVGL)干货入门教程二之LVGL的输入设备(indev)API对接 前言: 阅读前,请确保你拥有以下条件: 你已经完成"显示API"的移植. 你已经实现了一 ...
- 微信小程序云开发 初学者入门教程二
微信小程序云开发 初学者入门教程二-前端操作数据库模块 如何操作数据库,作为一名前端,如果对数据的知识不够熟悉也没关系,从现在开始好好学习就行,数据库的操作内容差不多涉及增删改查四大模块,花一些业余的 ...
- python elasticsearch 入门教程(二) ---全文搜索
python elasticsearch 入门教程(二) ---全文搜索 截止目前的搜索相对都很简单:单个姓名,通过年龄过滤.现在尝试下稍微高级点儿的全文搜索--一项 传统数据库确实很难搞定的任务. ...
- MongoDB 教程二: 添加, 删除,查询 shell命令
视频:MongoDB 教程二: 添加, 删除,查询 shell命令 MongoDB Shell 常用操作命令 MonoDB shell命令操作语法和JavaScript很类似,其实控制台底层的查询 ...
- R语言七天入门教程二:认识变量与运算符
R语言七天入门教程二:认识变量与运算符 一.什么是变量 1.变量 顾名思义,我们可以将变量理解为"可以改变的量",是计算机语言中能储存计算结果或能表示值的抽象概念.这里的值可以是数 ...
最新文章
- 一个页面区分管理者和普通用户如何设计_电商系统:优惠券原型设计说明(二)...
- ecshop php5.4以上版本错误之preg_replace 替换成 preg_replace_callback
- CCNP中单区域OSPF详解(第一部分)
- 机器人J中WPR_优傲:协作机器人的未来在哪里?
- 【转】DATAGRIDVIEW控制
- 安卓平板 python_使用安卓手机或平板对microbit进行编程
- 信息学奥赛一本通(1233:接水问题)
- 为防盗装自动门 不想也会影响生活
- 地大计算机学院保研华科人数,2020年华中科技大学保研率是多少
- linux的manual手册不存在,Linux笔记
- 卷积的拉普拉斯变换等于拉普拉斯变换的乘积
- OnlyOffice 二次开发定制化部署
- 【Altium Designer】使用CAD绘制PCB版型并将dwg文件导入AD(异形板设计)
- 数字孪生钢厂开发可视化系统-解决方案
- 串行外设接口(Serial Peripheral Interface, SPI)逻辑设计部分 - spi_slave
- 7-2 长度质量计量单位换算(分数 5)
- MySQL日志双一配置分析实战
- STM32 Alternate functions 与 Additional functions
- 2021河南省ICPC省赛总结
- wgt包更新时会下载但是不会安装
热门文章
- php图书管理系统源码详细设计,C语言程序设计:图书管理系统(超详细有登录系统,附代码和试验报告)...
- 【演示工具】Focusky教程 | 删除录音
- 低代码如何助力石化行业数字化升级?
- JZSearch精准全文搜索引擎共享开发包 v4.5
- 国庆出游大家有什么好的帐篷品牌推荐
- python 发送email到qq
- Python基础知识 D4
- @MapperScan(basePackages = “com.lzc.mapper“)的作用
- c语言链表head的作用,c语言链表的用法
- 【正点原子Linux连载】第二十二章 AP3216C 摘自【正点原子】I.MX6U嵌入式Qt开发指南V1.0.2