在core层 添加一个model,如图

ABP 05 创建Model 以及 相应的增删改查-LMLPHP

2、在 EntityFrameworkCore 层的 DbContext 中添加 Menu

ABP 05 创建Model 以及 相应的增删改查-LMLPHP

3、编译一下 准备把新增的Model迁移到数据库

  打开 程序包管理器控制台,默认项目选择 ***.EntityFrameworkCore

  执行语句:

    (1)Add-Migration add_Menu

    (2)Update-Database -Verbose

ABP 05 创建Model 以及 相应的增删改查-LMLPHP

4、在 Application 层,添加 Menu 的相关类,结构如下:

ABP 05 创建Model 以及 相应的增删改查-LMLPHP

  (1)、

  IMenuAppService 继承自 IAsyncCrudAppService

  IAsyncCrudAppService的定义:

ABP 05 创建Model 以及 相应的增删改查-LMLPHP

  TEntityDto 和 TUpdateInput 均继承自 IEntityDto<TPrimaryKey>,其实就是这两个model均包含了主键,其它的没啥特别的

  其中一个接口是这样定义的,如下:

ABP 05 创建Model 以及 相应的增删改查-LMLPHP

  大致就是 但凡实现了IAsyncCrudAppService这个接口的,都具有这些方法,常见的增删改查都有了。

  (2)、

  MenuAppService 继承自 AsyncCrudAppService

  AsyncCrudAppService 实现了 IAsyncCrudAppService 的相应方法

  继承 AsyncCrudAppService,除了给相应的参数外,还需要调用父类的构造函数,父类的构造函数如下:

ABP 05 创建Model 以及 相应的增删改查-LMLPHP

  子类的调用方式:

  因为分类只有一个构造函数,并且还有参,所以只能这么调用了。

ABP 05 创建Model 以及 相应的增删改查-LMLPHP

  对应调用父类构造函数这个事儿,自己可以简单测试一下,具体可以看文章:

    1、https://blog.csdn.net/Hellen0708/article/details/85268050

    2、https://zhidao.baidu.com/question/135452328.html

  简单测试:

ABP 05 创建Model 以及 相应的增删改查-LMLPHP

  4个Dto类:

ABP 05 创建Model 以及 相应的增删改查-LMLPHP

5、前端调用实现

  创建控制器,控制器 继承自 MyABPControllerBase

  MyABPControllerBase:定义在 MyABP.Web.Core 这个层,继承 AbpController

  AbpController:继承 Controller,定义了一些常用的属性 和 自动完成依赖的管理

  如果不继承 AbpController,而是直接继承 Controller 的话,会报错。

  报错内容:No component for supporting the service MyABP.Web.Mvc.Controllers.MenusController was found

ABP 05 创建Model 以及 相应的增删改查-LMLPHP

  为什么只有继承 AbpController 才可以被访问,下次看了源码再补充了。

05-08 14:53