本示例不讲概念,只讲怎么用,概念性的内容没有比官方文档更清楚的了,我也正在学习,可能理解的地方有不对的欢迎一起交流,但需要您了解以下内容才能看明白

  • 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 极简入门教程(一)的更多相关文章

  1. ABP 极简入门教程(三 权限)

    此处演示为MVC项目,同样权限定义需要到Application中才能在获取API时进行权限验证 一.打开Sample.Core\Authorization\PermissionNames.cs增加授权 ...

  2. ABP 极简入门教程(二 MVC方式显示数据)

    增加显示菜单 Sample.Web.MVC项目中找到startup目录打开SampleNavigationProvider.cs,根据现有内容添加以下内容 .AddItem( new MenuItem ...

  3. Git 极简入门教程学习笔记

    Git 极简入门教程  http://rogerdudler.github.io/git-guide/index.zh.html 测试用 https://github.com/xxx/BrnShop. ...

  4. Nginx 极简入门教程!

    上篇文章和大家聊了 Spring Session 实现 Session 共享的问题,有的小伙伴看了后表示对 Nginx 还是很懵,因此有了这篇文章,算是一个 Nginx 扫盲入门吧! 基本介绍 Ngi ...

  5. Nginx 极简入门教程!(转)

    基本介绍 Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务. Nginx 是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler.r ...

  6. 极简python教程02:基础变量,删繁就简

    python极简教程已经开赛,如果错过说明可以回翻: 极简python教程:赛前说明 借这个机会,我再讲讲我的教程和其他网上的教程的区别: 1 我分享的内容,是我在工作中会高频使用的语法,是精华内容 ...

  7. .Net Core in Docker极简入门(下篇)

    Tips:本篇已加入系列文章阅读目录,可点击查看更多相关文章. 目录 前言 开始 Docker-Compose 代码修改 yml file up & down 镜像仓库 最后 前言 上一篇[. ...

  8. ElasticSearch极简入门总结

    一,目录 安装es 项目添加maven依赖 es客户端组件注入到spring容器中 es与mysql表结构对比 索引的删除创建 文档的crud es能快速搜索的核心-倒排索引 基于倒排索引的精确搜索. ...

  9. Spring Security极简入门三部曲(上篇)

    目录 Spring Security极简入门三部曲(上篇) 写在前面 为什么要用Spring Security 数据库设计 demo时刻 核心代码讲解 小结 Spring Security极简入门三部 ...

随机推荐

  1. 服务网格Istio入门-详细记录Kubernetes安装Istio并使用

    我最新最全的文章都在南瓜慢说 www.pkslow.com,文章更新也只在官网,欢迎大家来喝茶~~ 1 服务网格Istio Istio是开源的Service Mesh实现,一般用于Kubernetes ...

  2. shell的图形排列

    目录 一.矩形 二.直角三角形 三.倒直角三角形 四.靠右的直角三角形 五.等腰三角形 六.平行四边形 七.等腰梯形 八.菱形 九.可变动菱形 一.矩形 二.直角三角形 三.倒直角三角形 四.靠右的直 ...

  3. TCP三次握手、四次挥手理解

    tcp三次握手建立连接第一次握手 客户端发送给服务器一段连接请求报文,等待服务器回应 第二次握手 服务器收到报文,并发送给客户端一个确认报文,等待客户端回应 第三次握手 客户端收到新报文 ,再发送给服 ...

  4. netty系列之:使用UDP协议

    目录 简介 UDP协议 String和ByteBuf的转换 构建DatagramPacket 启动客户端和服务器 总结 简介 在之前的系列文章中,我们到了使用netty做聊天服务器,聊天服务器使用的S ...

  5. miniFTP项目实战二

    项目简介: 在Linux环境下用C语言开发的Vsftpd的简化版本,拥有部分Vsftpd功能和相同的FTP协议,系统的主要架构采用多进程模型,每当有一个新的客户连接到达,主进程就会派生出一个ftp服务 ...

  6. Anaconda安装和使用

    Anaconda anaconda (开源的Python包管理器) 编辑 讨论 上传视频 Anaconda指的是一个开源的Python发行版本,其包含了conda.Python等180多个科学包及其依 ...

  7. AspNetCore WebApi

    需求 前几天,马老板给小明和小红一个"待办事项"网站,小明负责后端,小红负责前端,并要求网站可以同时在 Windows.和 Linux 上运行. 小明整理了一下"待办事项 ...

  8. 本文详细阐述如何用C#创建COM组件,并能用VC6.0等调用。

    本文详细阐述如何用C#创建COM组件,并能用VC6.0等调用. 附:本文适用任何VS系列工具. 在用C#创建COM组件时,一定要记住以下几点: 1.所要导出的类必须为公有: 2.所有属性.方法也必须为 ...

  9. 如何使用Git建立本地仓库并上传代码到GitHub

    使用Git建立本地仓库并上传代码到GitHub 工具/原料   电脑安装git客户端.注册github账号并登陆 方法/步骤     到本地项目文件夹右键选择git bash here   输入个人信 ...

  10. 【.Net】深入理解C#的装箱和拆箱

    装箱和拆箱是值类型和引用类型之间相互转换是要执行的操作.  1. 装箱在值类型向引用类型转换时发生 2. 拆箱在引用类型向值类型转换时发生 光上述两句话不难理解,但是往深处了解,就需要一些篇幅来解释了 ...