[Abp vNext 入坑分享] - 3.简单的用户模块功能开发
一、简要说明
本篇文章开始进行业务模块的开发模拟,借助user模块来进行业务开发,主要是用户相关的基础操作。主要是先使用Users来体验整个开发的流程。主要是先把一个基础流程跑顺利,在这里我并不会过于追求让所有属性都只能通过方法进去赋值这种写法,我觉得绝大部分项目并没有必要写到这样。虽然借助代码生成器,这种方法也很简单的生成出来。只是我觉得没必要,只是个人喜好。。
二、具体步骤
2.1.首先创建相应的Entity,

并将Entity放入Dbcontext中绑定Dbset

2.2.初始化Migrations并更新到数据库中去。

如上图,则需要在Migration层安装Microsoft.EntityFrameworkCore.Tools

再运行Update-database更新到数据库。

这样就相当于创建好了相应的表了。
2.3创建对应的AppService,IAppService,Repository,IRepository层。

2.4在相应的层添加好代码:我这里模拟了getuserinfo返回user_name,user_phone方法。一个是完全穿透到ef的repository层的,另一个是利用appservice层的repository的基础方法GetAsyn的。
首先要创建好两个dto,一个用于入参,一个用于出参。暂时我不使用automapper之类的组件进行自动转换,后期会介绍automapper的用法。

然后在HttpApi项目创建UserController:LearnController,后期会在LearnController里面封装一些基础方法,因为除了特殊的接口外,所有的接口尽量都要继承LearnController,然后注入IUserAppServices

(1)穿透到EF的repository层的代码如下,供给get接口使用: UserRepository

IUserRepository

UserAppServices

IUserAppServices

(2)利用Repository的Base方法如下,供给get1接口使用:
UserAppServices

IUserAppServices

2.5调试项目。
使用我们事先录入的userid去调用get/get1接口,看到返回是预期的数据


然后我们看一下控制台输出的日志,查询也是正常的。
对于新人来说可能有两点需要注意一下:
(1)我们使用的是SingleOrDefaultAsync,但是数据查询的是Limit 2,这是因为SingleOrDefaultAsync在返回数据超出1的时候会抛出异常,数据行数为0则输出null,所以需要至少2才能判断是否是>1;

(2)另外还有个注意的点是:控制台假死状态,由于我们有时候看日志的时候会复制里面的内容,然后直接在vs里面退出了调试状态 。如下图:

然后进行修改代码,改完之后再点击调试,这个时候发现项目很久都没有启动,这个时候要随便输入一下就可以,有点类似我们写控制台的时候的ReadKey()


[Abp vNext 入坑分享] - 3.简单的用户模块功能开发的更多相关文章
- [Abp vNext 入坑分享] - 前言
一·背景 Abp vnext是 ABP 框架作者所发起一个完全基于 ASP .NET Core框架,截至2020年4月份已经升级到2.5.0版本,根据经验2.0版本以后可以放心的使用在生产环境.类似a ...
- [Abp vNext 入坑分享] - 7.Automapper与validation的使用
简要说明 [项目源码] [章节目录] 本文主要介绍Automapper与Validation的使用方法.首先使用Automapper的目的是引入组件完成entity与dto之间的转换以达到简化代码的目 ...
- [Abp vNext 入坑分享] - 8.Redis与Refit的接入
前言 本章结束之后,这个abp vnext系列算是初步完结了,基础的组件都已经接入了.如果各位还需要其它的组件的话,可以自己按需要进行接入使用.其实这个只是一个基础的框架,可以自己根据需要进行变通的. ...
- [Abp vNext 入坑分享] - 4.JWT授权的接入
一.感想 在写这一系列文章之前,本来以为写这个之前已经搭建好的框架描述会比较简单,但是慢慢写下来才发现.写这个真的不简单额,本来以为图文一起,一个晚上应该能输出一篇吧...结果:现实真的骨感,一个星期 ...
- [Abp vNext 入坑分享] - 1.创建初始的项目
一.简要说明 本篇文章主要是跟着官方的文档把项目安装好先,同时了解一下大概的项目结构. 二.具体步骤 2.1全局安装ABP CLI,直接在cmd中安装即可.如果你之前安装过,这里可以略过: dotne ...
- [Abp vNext 入坑分享] - 6.完整接入swagger
前言 由于最近一直在修改一下排版,同时找了非技术的朋友帮忙看一下排版的问题,现在已经基本上确定了排版和样式了.更新可以恢复正常了. 作为一个写前端代码基本只写js不写css的开发,搞排版真的头疼..各 ...
- [Abp vNext 入坑分享] - 2.简化项目结构
一.简要说明 本篇文章根据我自己的需要对项目结果进行简化,让项目结构更符合我自己的要求,同时让项目跑起来.仅供参考 二.具体步骤 2.1卸载掉对我来说目前使用不上的项目,identityserver, ...
- [Abp vNext 入坑分享] - 5.全局异常替换
一.简要说明 [项目源码] [章节目录] 前面我们已经初步完成了框架的功能了,jwt的也已经接入完成了. 现在需要进行全局异常的接入了,abpvnext官方本来就有了全局异常的模块了,介绍链接 ...
- ABP开发框架前后端开发系列---(6)ABP基础接口处理和省份城市行政区管理模块的开发
最近没有更新ABP框架的相关文章,一直在研究和封装相关的接口,总算告一段落,开始继续整理下开发心得.上次我在随笔<ABP开发框架前后端开发系列---(5)Web API调用类在Winform项目 ...
随机推荐
- OpenCV-Python 用于角点检测的FAST算法 | 四十一
目标 在本章中, 我们将了解FAST算法的基础知识. 我们将使用OpenCV功能对FAST算法进行探索. 理论 我们看到了几个特征检测器,其中很多真的很棒.但是,从实时应用程序的角度来看,它们不够快. ...
- java——构造器理解
构造器理解 什么是构造器 构造器也叫构造方法:用于对象的初始化: 写构造器注意事项 构造器名与类名一致:有返回值但是不能定义返回类型(返回值类型是本类,可以加一个空的return): 构造器的调用 通 ...
- Rust入坑指南:居安思危
任何事情都是相对的,就像Rust给我们的印象一直是安全.快速,但实际上,完全的安全是不可能实现的.因此,Rust中也是会有不安全的代码的. 严格来讲,Rust语言可以分为Safe Rust和Unsaf ...
- 【Pytest01】全网最全最新的Pytest框架快速入门
一.Pytest简介pytest是一个非常成熟的全功能的Python测试框架,主要有一下几个特点:1.简单灵活,容易上手,支持参数化2.能够支持简单的单元测试和复杂的功能测试,还可以用来做seleni ...
- [讲解]prim算法<最小生成树>
最小生成树的方法一般比较常用的就是kruskal和prim算法 一个是按边从小到大加,一个是按点从小到大加,两个方法都是比较常用的,都不是很难... kruskal算法在本文里我就不讲了,本文的重点是 ...
- TCP/IP中的传输层协议TCP、UDP
TCP提供可靠的通信传输,而UDP则常用于让广播和细节控制交给应用的通信传输. 传输层协议根据IP数据报判断最终的接收端应用程序. TCP/IP的众多应用协议大多以客户端/服务端的形式运行.客户端是请 ...
- EXPLAIN 查看 SQL 执行计划
EXPLAIN 查看 SQL 执行计划.分析索引的效率: id:id 列数字越大越先执行: 如果说数字一样大,那么就从上往下依次执行,id列为null的就表是这是一个结果集,不需要使用它来进行查询. ...
- python之xlrd和xlwt模块读写excel使用详解
一.xlrd模块和xlwt模块是什么 xlrd模块是python第三方工具包,用于读取excel中的数据: xlwt模块是python第三方工具包,用于往excel中写入数据: 二 ...
- 一分钟 Get 时序数据库 InfluxDB 的技能
1. 通过上期分享<实践指路明灯,源码剖析flink-metrics>,对当下较火的流式处理框架 flink 的指标监控体系有了全局的认识,并结合 flink-metrics-xxxx 模 ...
- nexus Maven私服的相关配置
Maven私服中如需本地上传Maven私服内容则需在 setting.xml中配置如下: <server> <id>nexus-releases</id> < ...