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

  • 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. Java 使用 Apache commons-math3 线性拟合、非线性拟合实例(带效果图)

    Java 使用 CommonsMath3 的线性和非线性拟合实例,带效果图 例子查看 GitHub Gitee 运行src/main/java/org/wfw/chart/Main.java 即可查看 ...

  2. Vue学习笔记(一)简单使用和插值操作

    目录 一.Vue是什么 二.Vue简单体验 1. 声明式渲染 2. vue列表展示 3. 处理用户输入(事件监听) 三.插值操作 1. Mustache语法 2. 常用v-指令 v-once v-ht ...

  3. 20初识前端HTML(1)

    1 .HTML 1.1 网页的组成 文字 图片 链接 等元素构成.除了这些元素之外 网页中还可以包含音频 视频 等 1.2 WEB前端开发的流程 现在主流的开发流程: 前后端分离的开发模式. 美工:p ...

  4. JUC学习笔记(二)

    JUC学习笔记(一)https://www.cnblogs.com/lm66/p/15118407.html 1.Lock接口 1.1.Synchronized 1.1.1.Synchronized关 ...

  5. 终于有人把Android技术面试知识体系整理出来了,这些学习手册让你的面试稳如泰山

    前言 年年寒冬,年年也挡不住一个安卓程序员追求大厂的决心.想要进入大厂,我们需要掌握哪些知识点呢?这里,我为大家梳理了一个整体的知识架构.整体包括Java.Android.算法.计算机基础等等,相应的 ...

  6. Rancher v1.6.29 Docker单节点部署

    前言: Docker镜像中心,有两个版本的rancher(1.X),镜像名称为:rancher/server,而rancher(2.X)的镜像名称是rancher/rancher 去daocloud官 ...

  7. arraycopy将数组分为两部分时游标的设置方法

    System.arraycopy是复制数组的一个常用工具,它在游标处如何分为两个是一个需要注意的问题,例如下面的示例代码: byte [] src = { 104, 101, 108, 108, 11 ...

  8. Fluid + GooseFS 助力云原生数据编排与加速快速落地

    前言 Fluid 作为基于 Kubernetes 开发的面向云原生存算分离场景下的数据调度和编排加速框架,已于近期完成了 v0.6.0 版本的正式发布.腾讯云容器 TKE 团队一直致力于参与 Flui ...

  9. Typora使用Gitee图床

    前言 现在比较流行的Markdown编辑器应该是Typora,但是Typora本身不支持本地上传图片的云端存储,所以当我们写博客的时候,需要上传图片,就得自己设置图床,今天给大家推荐一款免费的图床-G ...

  10. FPGA学习过程(二)

    项目:数码管动态显示时间 首先建立一个计时一秒的模块,作为数码管显示的需要 module timer_s( input wire clk, input wire rst_n, output wire ...