1 添加一个领域层

前言: ABP自带的Core层我们一般不会修改, 为了项目结构更加清晰建议添加一个Core层, 存放与业务有关的实体

1,在src目录下新建一个项目,类库,例如叫AbpDemo.CoreXxx,
然后添加依赖,照着现有的领域层AbpDemo.Core添加:abp.automapper 和 abp.ZeroCore.EntityFrameworkCore ,添加一样的版本

2,在项目中添加一个实体,一般的首先会添加一个文件夹,实体如下

//系统枚举表,所有表用到的枚举字段都事先插入到此表[Table("SysEnum")]public class SysEnum : Entity<string>{/// <summary>/// 无效Id,实际Id为Type和Value/// </summary>[NotMapped]public override string Id => $"{Type}-{Value}";//类型,与使用此类型的表字段名一致,同时是多语言的Keypublic string Type { get; set; }//值,[Type,Value]组成复合主键public int Value { get; set; }//值标题,必填,用于前端默认显示(不启用多语言的时候)public string Name { get; set; }/** 预留* 多语言的键,必填,* 类似英文标题*/public string KeyStr { get; set; }//是否启用public bool IsEnabled { get; set; }//备注public string Remark { get; set; }}

3,在应用层Application和基础层EntityFrameworkCore添加新项目的依赖

4,按正常流程添加DbSet和服务就可以了

5, 添加一个Module类, 给Application使用

    [DependsOn(typeof(AbpZeroCoreModule))]public class CoreXxxModule : AbpModule{public override void Initialize(){IocManager.RegisterAssemblyByConvention(typeof(CorePcpModule).GetAssembly());}}

2 添加一个应用层

1, 添加一个类库项目, 例如ProjectName.ApplicationXxx, 要依赖领域层和基础设施层
2, 添加一个Module类, 例如:XxxApplicationModule

    [DependsOn(typeof(PlasmaCloudPlatformCoreModule), typeof(CorePcpModule), typeof(AbpAutoMapperModule))]public class XxxApplicationModule : AbpModule{public override void Initialize(){var thisAssembly = typeof(XxxApplicationModule).GetAssembly();IocManager.RegisterAssemblyByConvention(thisAssembly);Configuration.Modules.AbpAutoMapper().Configurators.Add(// Scan the assembly for classes which inherit from AutoMapper.Profilecfg => cfg.AddMaps(thisAssembly));}}

3, .Web.Core项目要依赖新的应用类, 并在WebCoreModule类中添加如下代码,注册服务

 Configuration.Modules.AbpAspNetCore().CreateControllersForAppServices(typeof(XxxApplicationModule).GetAssembly());

ABP入门教程(三)添加一个领域层和一个应用层相关推荐

  1. ABP入门教程(二)添加一个实体和服务

    1,在领域层(Core)添加一个实体 [Table("Department")]public class Department : FullAuditedEntity{[Requi ...

  2. ABP入门系列(2)——领域层创建实体

    这一节我们主要和领域层打交道.首先我们要对ABP的体系结构以及从模板创建的解决方案进行一一对应.网上有代码生成器去简化我们这一步的任务,但是不建议初学者去使用. 一.首先来看看ABP体系结构 ABP体 ...

  3. ABP入门系列(3)——领域层定义仓储并实现

    一.先来介绍下仓储 仓储(Repository): 仓储用来操作数据库进行数据存取.仓储接口在领域层定义,而仓储的实现类应该写在基础设施层. 在ABP中,仓储类要实现IRepository接口,接口定 ...

  4. ABP(现代ASP.NET样板开发框架)系列之2、ABP入门教程

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之2.ABP入门教程 ABP是"ASP.NET Boilerplate Project (ASP.NET样 ...

  5. qpython3可视图形界面_PySide——Python图形化界面入门教程(三)

    PySide--Python图形化界面入门教程(三) --使用内建新号和槽 --Using Built-In Signals and Slots 上一个教程中,我们学习了如何创建和建立交互widget ...

  6. python爬虫入门教程(三):淘女郎爬虫 ( 接口解析 | 图片下载 )

    2019/10/28更新 网站已改版,代码已失效(其实早就失效了,但我懒得改...)此博文仅供做思路上的参考 代码使用python2编写,因已失效,就未改写成python3 爬虫入门系列教程: pyt ...

  7. SpringCloud 入门教程(三): 配置自动刷新

    Spring Cloud 入门教程(三): 配置自动刷新 之前讲的配置管理, 只有在应用启动时会读取到GIT的内容, 之后只要应用不重启,GIT中文件的修改,应用无法感知, 即使重启Config Se ...

  8. 【MATLAB Image Processing Toolbox 入门教程三】快速入门之“在多光谱图像中寻找植被”

    [MATLAB Image Processing Toolbox 入门教程三] 本篇摘要 一.从多光谱图像文件导入彩色红外通道 二.构建近红外光谱散射图 三.计算植被系数并显示其定位 四.综合实例部分 ...

  9. R语言七天入门教程三:学习基本结构

    R语言七天入门教程三:学习基本结构 一.编程的语言的基本结构 1.三种基本结构 绝大多数编程语言,都有三种最基本的程序结构:顺序结构.分支结构.循环结构.这三种结构的流程图如下所示(从左至右依次为:顺 ...

最新文章

  1. M1芯片搞数据科学好使吗?5种基准测试给你答案
  2. 4款基于jquery的列表图标动画切换特效
  3. PyTorch 实现经典模型1:LeNet5
  4. 其实大学老师在剑桥读博士,好像录取不难
  5. 为什么我不选阿里云(一)
  6. 互联网日报 | 6月18日 星期五 | 百度与极狐发布量产共享无人车;奈雪的茶预计6月30日登陆港交所;阿里云盘上线PC版...
  7. mysql聚合索引创建_为 MySQL 查询优化选择最佳索引
  8. 安装debian 9.1后,中文环境下将home目录下文件夹改为对应的英文
  9. DosBox装Windows98
  10. MPQ8873电源芯片配置
  11. 清华化工系碳纳米管重大突破!道翰天琼认知智能机器人平台API接口大脑为您揭秘
  12. 【日语】编程相关日语词汇
  13. 求解广州到上海用时最短的路径,使用中国地图超详细剖析Dijkstra算法思想
  14. 读书笔记(八)--货币战争 金权天下
  15. VMware发表新版桌面虚拟化软件View 3
  16. Pytorch学习笔记01----张量生成
  17. 智能座舱软件平台EX5.0发布,量“声”打造音视觉融合交互体验
  18. Dropbox免费网盘高级使用技巧
  19. linux系统如何修复分区工具,推荐一个Linux分区恢复工具Testdisk(Windows也能用)...
  20. 读王坚博士的《在线》有感

热门文章

  1. 微软Teams在上海的内部Workshop
  2. 基于matlab的运筹学,matlab 运筹学
  3. Apple Silicon M1 Mac如何恢复出厂设置
  4. JS正则表达式验证数字、非数字、正数、负数
  5. 计算机主板复位电路的组成,电脑主板复位电路工作分析1..doc
  6. linux复制文件夹及赋予权限
  7. 自适应直方图均衡(AHE)和限制对比度的自适应直方图均衡(CLAHE)
  8. func与defer
  9. 倒计时软件开发(原创)
  10. WordPress虚拟资源商城主题日主题RiPro6.7 开源版 星空资源网首发