https://aspnetboilerplate.com/Templates 创建项目之后,下载用Vs2019打开(vs2017不支持netcore3.0)结构如下:

一、

2、

在xx.core中新增实体类Code  codemapping

3、

在xx.core 中新增 仓储接口

4、在xx.EntityFrameWork中实现仓储

不要忘记在项目中上下文中做如下设置,否则执行add-migration 及update-database 时不会产生对应的表结构

 public class CodeMappingRepository:WuMingRepositoryBase<CodeMapping,int>,ICodeMappingRepository
{
public CodeMappingRepository(IDbContextProvider<WuMingDbContext> dbContextProvider) : base(dbContextProvider)
{
} public int Account()
{
throw new NotImplementedException();
}
}
public class CodeRepository :WuMingRepositoryBase<Code,int>,ICodeRepository
{
public CodeRepository(IDbContextProvider<WuMingDbContext> dbContextProvider) : base(dbContextProvider)
{
}
}

5 .在xx.Application 定义Ixxservice 和实现实现接口

定义和实现:

ICodeAppService
public interface ICodeAppService: IApplicationService
{
List<Code> GetCodes(); void UpdateCode(Code entity); void CreateCode(Code entity); void DeleteCode(int Id);
}

CodeAppService:

  [AbpAllowAnonymous]
public class CodeAppService :WuMingAppServiceBase, ICodeAppService
{ ICodeRepository _CodeRepository;
ICodeMappingRepository _CodeMappingRepository; public CodeAppService(ICodeRepository CodeRepository, ICodeMappingRepository CodeMappingRepository)
{
_CodeRepository = CodeRepository;
_CodeMappingRepository = CodeMappingRepository;
} public void CreateCode(Code entity)
{
Logger.Info($"Created a User for entity at:{DateTime.Now}");
try
{
_CodeRepository.Insert(entity);
}
catch (Exception ex)
{
Logger.Error(ex.ToString());
}
} public void DeleteCode(int Id)
{
Logger.Info($"Created a User for entity at:{DateTime.Now}");
try
{
// _CodeRepository.Delete(new Code() { Id = Id }); }
catch (Exception ex)
{ Logger.Error(ex.ToString());
} } public List<Code> GetCodes()
{
Logger.Info($"Created a User for entity at:{DateTime.Now}");
try
{
//return _CodeRepository.GetAll().ToList();
return null;
}
catch (Exception ex)
{ throw;
}
} public void UpdateCode(Code entity)
{
Logger.Info($"Created a User for entity at:{DateTime.Now}");
try
{
// _CodeRepository.Update(entity); }
catch (Exception ex)
{ Logger.Error(ex.ToString());
}
}
}

6.设置项目启动项: F5 就可以看到api接口地址及接口描述

Abp添加新的接口(扩展底层接口)的更多相关文章

  1. typescript接口扩展、接口的继承

    //接口扩展:接口可以继承接口 // interface Animal{ // eat():void; // } // interface Person extends Animal{ // work ...

  2. Abp添加新的Api(不扩展底层方法)

    定义新的实体类:FileManage;继承 FullAuditedEntity<Guid> 在XX.Application 中定义IXXservice及实现XXservice public ...

  3. 添加新硬盘,扩展Centos7根分区

    ##背景介绍,系统安装时,分配的硬盘容量太小,根分区空间不够用,现添加一个新硬盘,通过以下步骤来扩展centos7根分区 [root@t201 ~]# df -h 文件系统 容量 已用 可用 已用% ...

  4. JEECMS 2.4.2 之添加新的可扩展的ftl模版文件、自定义方法

    Demo: <@cms.CfgList isPage='1' league='0' recommend='0' lala='0' hot='1' memberId='0' pageNo=page ...

  5. Android Telephony分析(六) ---- 接口扩展(实践篇)

    本文将结合前面五篇文章所讲解的知识,综合起来,实现一个接口扩展的功能.如果还没有阅读过前面五篇文章的内容,请先阅读:<Android Telephony分析(一) — Phone详解 >& ...

  6. typescript接口扩展

    /* typeScript中的接口 接口扩展 */ /* 接口的作用:在面向对象的编程中,接口是一种规范的定义,它定义了行为和动作的规范,在程序设计里面,接口起到一种限制和规范的作用.接口定义了某一批 ...

  7. Java EE HttpServletRequest接口和HttpServletResponse接口

    package javax.servlet.http (https://docs.oracle.com/javaee/7/api/javax/servlet/http/package-summary. ...

  8. Surface Pro 4 和 Surface Book 使用名为 Surface UEFI(统一可扩展固件接口)的新固件接口

    Surface Pro 4 和 Surface Book 使用名为 Surface UEFI(统一可扩展固件接口)的新固件接口.Surface UEFI 提供新功能,如启动更快速.安全性更高.可替换 ...

  9. 如何利用phpize在生产环境中为php添加新的扩展php-bcmath

    在日常的开发当中,随着开发的功能越来越复杂.对运行环境的要求也就随着需求的变化需要不断地更新和变化.一个在线的生产系统不可能一开始就满足了所有的运行依赖,因此动态地添加依赖就显得比较必要了.如果你的应 ...

随机推荐

  1. MySQL 主从复制 (CentOS 7)

    1.主从复制原理 (1) 当master 服务器上的数据发生改变时,则将其改变写入二进制日志文件中: (2) slave服务器会在一定时间间隔内对 master 服务器上的二进制日志进行探测,探测其是 ...

  2. java获取来访者mac信息

    根据IP获取对应的Mac地址,支持win10+Linux package com.simonjia.util.other; /** * @Author: SimonHu * @Date: 2019/6 ...

  3. tp5分页,一看就懂,简单明了(附带额外参数)

    php 代码: $result = $jjModel->where($wheres)->paginate(10,false,['query' => ['peytype'=>$p ...

  4. python:网络爬虫的学习笔记

    如果要爬取的内容嵌在网页源代码中的话,直接下载网页源代码再利用正则表达式来寻找就ok了.下面是个简单的例子: import urllib.request html = urllib.request.u ...

  5. 按二次back键退出程序应用的实现

    package com.loaderman.twoexitdemo; import android.os.Bundle; import android.os.Handler; import andro ...

  6. 计算机组成原理 — CPU 中央处理器

    目录 文章目录 目录 前文列表 逻辑电路部件 组合逻辑电路 时序逻辑电路 阵列逻辑电路 中央处理器(CPU) 控制单元(控制器) 运算单元(运算器) 存储单元(寄存器组和片内缓存) CPU 的工作原理 ...

  7. axios的中文使用文档

    axios 基于promise用于浏览器和node.js的http客户端 原文链接 lewis1990@amoy 特点 支持浏览器和node.js 支持promise 能拦截请求和响应 能转换请求和响 ...

  8. java源码-ConcurrentHashMap分析-1

    ConcurrentHashMap源码分析 版本jdk8 摈弃了jdk7之前的segement段锁: 首先分析一下put方法,大致的流程就是首先对key取hash函数 判断是否first节点是否存在 ...

  9. Xcode中Info.plist文件里的"Bundle versions string, short" 跟 "Bundle version" 的区别

    Bundle versions string, short:用于itunes上显示的版本号,即对外的版本.(最多是3个部分组成即 x.y.z) Bundle version:内部项目管理的版本号,不对 ...

  10. C基础知识(2):变量&常量的定义和声明

    变量定义和声明 (1) 使用int,char等类型符定义变量 使用int,char等类型符定义变量时,不管有没有指定初始值,都就已经建立了存储空间(开辟内存).内存寻址由大到小,优先分配内存地址比较大 ...