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

  • 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. .Net Core微服务——Consul(4):主从、集群

    延续上一篇的话题继续,顺便放上一篇的传送门:点这里. 集群的必要性 consul本身就是管理集群的,现在还需要给consul搞个集群,这是为啥?因为consul单点也容易挂啊!万一管理集群的consu ...

  2. mout -t -cifs 解析

    mount -t cifs //<azurefile_url> <linux_mountpoint(folder)> df 查看挂载 umount取消挂载 umount -l ...

  3. vue的table切换

    HTML: <div id="box"> <ul> <li v-for="(item,index) in items" v-tex ...

  4. vue日记②之兼容各种情况的可跳转链接

    兼容各种情况的可跳转链接 需求 因为聊天气泡颜色原因,发送出去的链接通常模糊不清,而且不能直接跳转,所以我打算已a链接的显示直接抓取所有的网页链接,同时还要兼容富文本框的直接输入图片 这是运行效果 实 ...

  5. Cobaltstrike与MSF会话派生

    Cobaltstrike与MSF会话派生 前言 一般在渗透的过程中,Get到shell之后一般来说我喜欢上线到Cobaltstrike,但是Cobaltstrike的会话是60S更新一次,有时候功能也 ...

  6. 2021年最新字节跳动Android面试真题解析

    概述 时间过得是真TM快,回想自己是16年从学校毕业,现在是出来工作的第五个年头啦.在不同的大小公司都待过,就在前段时间顺利的完成了一次跳槽涨薪,面试了几家公司,最终选择了字节跳动.今特此前来跟大家进 ...

  7. 痞子衡嵌入式:i.MXRT中不支持DQS的FlexSPI引脚组连接Flash下载与启动注意事项

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT中不支持DQS的FlexSPI引脚组连接Flash下载与启动注意事项. 最近痞子衡在支持一个印度客户,这个客户项目主芯片选择 ...

  8. 关于phpmyadmin getshell

    思考一个问题:如何在获得一个PHP MySQL 搭建网站的phpmyadmin界面后(无论用什么办法,进到phpmyadmin里),进行一个getshell的操作? ...... 0x01山重水复 当 ...

  9. kali 免杀工具shellter安装以及使用

    Shellter 是一款动态 shellcode 注入工具,我们可以将shellcode注入到其它程序上,从而来躲避杀毒软件的查杀.俗称为免杀 官网:https://www.shellterproje ...

  10. 11-SpringCloud Hystrix

    Hystrix简介 分布式系统面临的问题 复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败. 服务雪崩 多个微服务之间调用的时候,假设微服务A调用微服务B和微服务 ...