ABP入门教程(三)添加一个领域层和一个应用层
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入门教程(三)添加一个领域层和一个应用层相关推荐
- ABP入门教程(二)添加一个实体和服务
1,在领域层(Core)添加一个实体 [Table("Department")]public class Department : FullAuditedEntity{[Requi ...
- ABP入门系列(2)——领域层创建实体
这一节我们主要和领域层打交道.首先我们要对ABP的体系结构以及从模板创建的解决方案进行一一对应.网上有代码生成器去简化我们这一步的任务,但是不建议初学者去使用. 一.首先来看看ABP体系结构 ABP体 ...
- ABP入门系列(3)——领域层定义仓储并实现
一.先来介绍下仓储 仓储(Repository): 仓储用来操作数据库进行数据存取.仓储接口在领域层定义,而仓储的实现类应该写在基础设施层. 在ABP中,仓储类要实现IRepository接口,接口定 ...
- ABP(现代ASP.NET样板开发框架)系列之2、ABP入门教程
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之2.ABP入门教程 ABP是"ASP.NET Boilerplate Project (ASP.NET样 ...
- qpython3可视图形界面_PySide——Python图形化界面入门教程(三)
PySide--Python图形化界面入门教程(三) --使用内建新号和槽 --Using Built-In Signals and Slots 上一个教程中,我们学习了如何创建和建立交互widget ...
- python爬虫入门教程(三):淘女郎爬虫 ( 接口解析 | 图片下载 )
2019/10/28更新 网站已改版,代码已失效(其实早就失效了,但我懒得改...)此博文仅供做思路上的参考 代码使用python2编写,因已失效,就未改写成python3 爬虫入门系列教程: pyt ...
- SpringCloud 入门教程(三): 配置自动刷新
Spring Cloud 入门教程(三): 配置自动刷新 之前讲的配置管理, 只有在应用启动时会读取到GIT的内容, 之后只要应用不重启,GIT中文件的修改,应用无法感知, 即使重启Config Se ...
- 【MATLAB Image Processing Toolbox 入门教程三】快速入门之“在多光谱图像中寻找植被”
[MATLAB Image Processing Toolbox 入门教程三] 本篇摘要 一.从多光谱图像文件导入彩色红外通道 二.构建近红外光谱散射图 三.计算植被系数并显示其定位 四.综合实例部分 ...
- R语言七天入门教程三:学习基本结构
R语言七天入门教程三:学习基本结构 一.编程的语言的基本结构 1.三种基本结构 绝大多数编程语言,都有三种最基本的程序结构:顺序结构.分支结构.循环结构.这三种结构的流程图如下所示(从左至右依次为:顺 ...
最新文章
- M1芯片搞数据科学好使吗?5种基准测试给你答案
- 4款基于jquery的列表图标动画切换特效
- PyTorch 实现经典模型1:LeNet5
- 其实大学老师在剑桥读博士,好像录取不难
- 为什么我不选阿里云(一)
- 互联网日报 | 6月18日 星期五 | 百度与极狐发布量产共享无人车;奈雪的茶预计6月30日登陆港交所;阿里云盘上线PC版...
- mysql聚合索引创建_为 MySQL 查询优化选择最佳索引
- 安装debian 9.1后,中文环境下将home目录下文件夹改为对应的英文
- DosBox装Windows98
- MPQ8873电源芯片配置
- 清华化工系碳纳米管重大突破!道翰天琼认知智能机器人平台API接口大脑为您揭秘
- 【日语】编程相关日语词汇
- 求解广州到上海用时最短的路径,使用中国地图超详细剖析Dijkstra算法思想
- 读书笔记(八)--货币战争 金权天下
- VMware发表新版桌面虚拟化软件View 3
- Pytorch学习笔记01----张量生成
- 智能座舱软件平台EX5.0发布,量“声”打造音视觉融合交互体验
- Dropbox免费网盘高级使用技巧
- linux系统如何修复分区工具,推荐一个Linux分区恢复工具Testdisk(Windows也能用)...
- 读王坚博士的《在线》有感