ABP 极简入门教程(一)
本示例不讲概念,只讲怎么用,概念性的内容没有比官方文档更清楚的了,我也正在学习,可能理解的地方有不对的欢迎一起交流,但需要您了解以下内容才能看明白
- asp.net core
- Entity Framework ,数据迁移
- DDD领域驱动设计 (Entities、Repositories、Domain Services、Domain Events、Application Services、DTOs等)
- Castle windsor (依赖注入容器)
- AutoMapper(实现Dto类与实体类的双向自动转换)
- Bootstrap
- jQuery
Abp下载,MVC项目 Multi Page Web Application 项目名Sample
项目结构
Sample.Core下新建Territory目录,新建Province模型类
using Abp.Domain.Entities; namespace Sample.Territory
{
public class Province : Entity<int>
{
public string Name { get; set; }
}
}
Sample.EntityFrameworkCore类库下找到EntityFrameworkCore目录下的SampleDbContext修改如下
using Microsoft.EntityFrameworkCore;
using Abp.Zero.EntityFrameworkCore;
using Sample.Authorization.Roles;
using Sample.Authorization.Users;
using Sample.MultiTenancy;
using Sample.Territory; namespace Sample.EntityFrameworkCore
{
public class SampleDbContext : AbpZeroDbContext<Tenant, Role, User, SampleDbContext>
{
/* Define a DbSet for each entity of the application */ public SampleDbContext(DbContextOptions<SampleDbContext> options)
: base(options)
{
} //DBSet类表示一个实体的集合
public DbSet<Province> Provinces { get; set; } //如果需要变更数据库表名需要使用
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Province>().ToTable("Province");
}
}
}
数据迁移,实体类转为数据表
PM> Add-Migration addProvince
Build started...
Build succeeded.
To undo this action, use Remove-Migration.
PM> update-database
Build started...
Build succeeded.
Applying migration '20200610003957_addProvince'.
Done.
Sample.Application类库下新建Territory目录,添加ProvinceAppService类,因需求abp提供的方法已经足够使用,故未添加IProvinceAppService接口
using Abp.Application.Services;
using Abp.Domain.Repositories;
using Sample.Territory.Dto; namespace Sample.Territory
{
/// <summary>
/// abp提供的常用增删改查方式
/// </summary>
public class ProvinceAppService:AsyncCrudAppService<Province,ProvinceDto>
{
public ProvinceAppService(IRepository<Province, int> repository) : base(repository)
{
}
}
}
Territory目录下新建Dto目录, 并添加ProvinceDto实体类
using Abp.Application.Services.Dto;
using Abp.AutoMapper; namespace Sample.Territory.Dto
{
[AutoMapFrom(typeof(Province))]
public class ProvinceDto :EntityDto<int>
{
public string Name { get; set; }
}
}
同目录新建ProvinceProfile类,自动映射
using AutoMapper; namespace Sample.Territory.Dto
{
public class ProvinceProfile : Profile
{
public ProvinceProfile()
{
CreateMap<ProvinceDto, Province>();
}
}
}
选中Sample.Web.Host设为启动项,所有Api已经自动设置好,并可以测试,效果如下
ABP 极简入门教程(一)的更多相关文章
- ABP 极简入门教程(三 权限)
此处演示为MVC项目,同样权限定义需要到Application中才能在获取API时进行权限验证 一.打开Sample.Core\Authorization\PermissionNames.cs增加授权 ...
- ABP 极简入门教程(二 MVC方式显示数据)
增加显示菜单 Sample.Web.MVC项目中找到startup目录打开SampleNavigationProvider.cs,根据现有内容添加以下内容 .AddItem( new MenuItem ...
- Git 极简入门教程学习笔记
Git 极简入门教程 http://rogerdudler.github.io/git-guide/index.zh.html 测试用 https://github.com/xxx/BrnShop. ...
- Nginx 极简入门教程!
上篇文章和大家聊了 Spring Session 实现 Session 共享的问题,有的小伙伴看了后表示对 Nginx 还是很懵,因此有了这篇文章,算是一个 Nginx 扫盲入门吧! 基本介绍 Ngi ...
- Nginx 极简入门教程!(转)
基本介绍 Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务. Nginx 是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler.r ...
- 极简python教程02:基础变量,删繁就简
python极简教程已经开赛,如果错过说明可以回翻: 极简python教程:赛前说明 借这个机会,我再讲讲我的教程和其他网上的教程的区别: 1 我分享的内容,是我在工作中会高频使用的语法,是精华内容 ...
- .Net Core in Docker极简入门(下篇)
Tips:本篇已加入系列文章阅读目录,可点击查看更多相关文章. 目录 前言 开始 Docker-Compose 代码修改 yml file up & down 镜像仓库 最后 前言 上一篇[. ...
- ElasticSearch极简入门总结
一,目录 安装es 项目添加maven依赖 es客户端组件注入到spring容器中 es与mysql表结构对比 索引的删除创建 文档的crud es能快速搜索的核心-倒排索引 基于倒排索引的精确搜索. ...
- Spring Security极简入门三部曲(上篇)
目录 Spring Security极简入门三部曲(上篇) 写在前面 为什么要用Spring Security 数据库设计 demo时刻 核心代码讲解 小结 Spring Security极简入门三部 ...
随机推荐
- 一个故事看懂HTTPS
我是一个浏览器,每到夜深人静的时候,主人就打开我开始学习. 为了不让别人看到浏览记录,主人选择了"无痕模式". 但网络中总是有很多坏人,他们通过抓包截获我和服务器的通信,主人干了什 ...
- JS基础-数据类型判断typeof、instanceof、Object.prototype.toString
typeof用在基本数据类型和函数时,返回其对应类型的描述,对于引用类型都返回为object. instanceof无法判断基本数据类型,对于引用类型数据,返回其其对应类型. Object.proto ...
- 【javaFX学习】(二) 面板手册
移至http://blog.csdn.net/qq_37837828/article/details/78732591 更新 找了好几个资料,没找到自己想要的,自己整理下吧,方便以后用的时候挑选,边学 ...
- alpakka-kafka(7)-kafka应用案例,消费模式
上篇描述的kafka案例是个库存管理平台.是一个公共服务平台,为其它软件模块或第三方软件提供库存状态管理服务.当然,平台管理的目标必须是共享的,即库存是作为公共资源开放的.这个库存管理平台是一个Kaf ...
- Shell-09-文本处理awk
awk 详情见: awk
- [11 Go语言基础-可变参数函数]
[11 Go语言基础-可变参数函数] 可变参数函数 什么是可变参数函数 可变参数函数是一种参数个数可变的函数. 语法 如果函数最后一个参数被记作 ...T ,这时函数可以接受任意个 T 类型参数作为最 ...
- Git(12)-- Git 分支 - 分支简介
@ 目录 1.分支简介 1.1.初始化并首次提交 首次提交对象及其树结构: git 的 cat-file 的命令用法: 1.2.修改并第二次提交 第二次提交对象及其树结构: 1.3.修改并第三次提交 ...
- 计算文件的MD5值和sha256值
1.计算文件的MD5值. 1)linux系统计算 MD5值:md5sum+文件名 sha256值:sha256su+文件名 2)windows系统计算 MD5值:利用Notepad++工具计算 sha ...
- 微信小程序中h5跳转到登录页面,登陆成功返回携带参数,h5刷新
公司的一个小程序,要做一个活动,需要判断登录状态. 思路:h5跳转到登录页面,登陆成功携带token自动返回. 本来以为是个非常简单的功能,没想到..... 发帖记录一下 1.登录页面 用getCur ...
- 【转】CAP定理的含义
转自:https://blog.csdn.net/pengjunlee/article/details/86517935 1998年,加州大学的计算机科学家 Eric Brewer 提出了分布式系统的 ...