[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项目 ...
随机推荐
- 关于虚拟机NAT连接外网!!!
点开Virtual Network Editor(开始->VMware),选择vmnet8, NAT setting就可以知道了. 1. 虚拟机NAT和主机的通讯方式,是通过虚拟网关(即NAT ...
- Thread wait notify sleep
wait: 必须暂定当前正在执行的线程,并释放资源锁,让其他线程可以有机会运行 notify/notifyall: 唤醒因锁池中的线程,使之运行 wait与sleep区别 对于sleep()方法,我们 ...
- setAttribute 方法
IE8及以下不支持 setAttribute用来修改dom标签上的属性比如(onclick); getAttribute用来获取dom标签上的属性
- Matlab 编程简介与实例
函数作图 二维平面曲线作图函数 plot(x, y, 's') x, y是长度相同的向量,s表示线型和颜色 如果作多条曲线在同一图上,则用函数: plot(x1, y1, 's1', x2, y2, ...
- 面试:给我说说你平时是如何优化MySQL的?
面试:给我说说你平时是如何优化MySQL的? 1.explain 在MySQL优化的时候.我们使用最多的是explain查看 SQL 的执行计划 类型 解释 type 连接类型.一个好的SQL语句至少 ...
- VUE CLI3.0安装及配置
# 安装 npm install -g @vue/cli # 查看已安装版本vue --version 或者 vue -V # 卸载 npm uninstall @vue/cli -g # 新建项目 ...
- vs整合MySQL和QT
23:37:23 2019-08-12 尝试用vs写一个程序整合MySQL和QT 参考资料:https://blog.csdn.net/qq_35987486/article/details/8406 ...
- 基于.NetCore3.1搭建项目系列 —— 使用Swagger导出文档 (补充篇)
前言 在上一篇导出文档番外篇中,我们已经熟悉了怎样根据json数据导出word的文档,生成接口文档,而在这一篇,将对上一篇进行完善补充,增加多种导出方式,实现更加完善的导出功能. 回顾 1. 获取Sw ...
- C++动态内存new和delete(超详细)
C++动态内存new和delete C++动态内存是C++灵活.炫酷的一种操作.学好它,能让自己编程逼格上一个level. 在学习动态内存之前,我们先要了解C++是怎么划分内存的: 栈:在函数内部声明 ...
- PTA | 1008 数组元素循环右移问题 (20分)
一个数组A中存有N(N>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M>=0)个位置,即将A中的数据由(A0 A1--AN-1)变换为(AN-M -- AN-1 A0 ...