一、简要说明

本篇文章开始进行业务模块的开发模拟,借助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.简单的用户模块功能开发的更多相关文章

  1. [Abp vNext 入坑分享] - 前言

    一·背景 Abp vnext是 ABP 框架作者所发起一个完全基于 ASP .NET Core框架,截至2020年4月份已经升级到2.5.0版本,根据经验2.0版本以后可以放心的使用在生产环境.类似a ...

  2. [Abp vNext 入坑分享] - 7.Automapper与validation的使用

    简要说明 [项目源码] [章节目录] 本文主要介绍Automapper与Validation的使用方法.首先使用Automapper的目的是引入组件完成entity与dto之间的转换以达到简化代码的目 ...

  3. [Abp vNext 入坑分享] - 8.Redis与Refit的接入

    前言 本章结束之后,这个abp vnext系列算是初步完结了,基础的组件都已经接入了.如果各位还需要其它的组件的话,可以自己按需要进行接入使用.其实这个只是一个基础的框架,可以自己根据需要进行变通的. ...

  4. [Abp vNext 入坑分享] - 4.JWT授权的接入

    一.感想 在写这一系列文章之前,本来以为写这个之前已经搭建好的框架描述会比较简单,但是慢慢写下来才发现.写这个真的不简单额,本来以为图文一起,一个晚上应该能输出一篇吧...结果:现实真的骨感,一个星期 ...

  5. [Abp vNext 入坑分享] - 1.创建初始的项目

    一.简要说明 本篇文章主要是跟着官方的文档把项目安装好先,同时了解一下大概的项目结构. 二.具体步骤 2.1全局安装ABP CLI,直接在cmd中安装即可.如果你之前安装过,这里可以略过: dotne ...

  6. [Abp vNext 入坑分享] - 6.完整接入swagger

    前言 由于最近一直在修改一下排版,同时找了非技术的朋友帮忙看一下排版的问题,现在已经基本上确定了排版和样式了.更新可以恢复正常了. 作为一个写前端代码基本只写js不写css的开发,搞排版真的头疼..各 ...

  7. [Abp vNext 入坑分享] - 2.简化项目结构

    一.简要说明 本篇文章根据我自己的需要对项目结果进行简化,让项目结构更符合我自己的要求,同时让项目跑起来.仅供参考 二.具体步骤 2.1卸载掉对我来说目前使用不上的项目,identityserver, ...

  8. [Abp vNext 入坑分享] - 5.全局异常替换

    一.简要说明 [项目源码] [章节目录]   前面我们已经初步完成了框架的功能了,jwt的也已经接入完成了.   现在需要进行全局异常的接入了,abpvnext官方本来就有了全局异常的模块了,介绍链接 ...

  9. ABP开发框架前后端开发系列---(6)ABP基础接口处理和省份城市行政区管理模块的开发

    最近没有更新ABP框架的相关文章,一直在研究和封装相关的接口,总算告一段落,开始继续整理下开发心得.上次我在随笔<ABP开发框架前后端开发系列---(5)Web API调用类在Winform项目 ...

随机推荐

  1. 关于Spring的常见面试题

    1.Spring是什么? Spring是一个轻量级的IoC和AOP容器框架.是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求.常见的配置方 ...

  2. adb 之日志文件分析(五)

    一,logcat日志文件 1,addroid日志系统提供了记录和查看系统调试信息的功能,日志都是从各种软件和一些系统的缓冲区(内存)中记录下来的,缓冲区可以通过logcat命令来查看和使用 2,在开发 ...

  3. Ubuntu16.04下LAMP环境的安装与配置

    Ubuntu16.04下LAMP环境的安装与配置 最近做个实验需要用到Ubuntu环境的靶场,所以这里介绍下Ubuntu环境下LAMP的安装与配置,话不多说,我们gkd! 1.Apache2的安装 首 ...

  4. Spring-Cloud-Netflix-Eureka注册中心

    TOC 概述 eureka是Netflix的子模块之一,也是一个核心的模块 eureka里有2个组件: 一个是EurekaServer(一个独立的项目) 这个是用于定位服务以实现中间层服务器的负载平衡 ...

  5. SVN同步代码问题集锦

    1.删除文件后file missing警告                      相关链接: http://blog.sina.com.cn/s/blog_63e26d560100ve00.htm ...

  6. 使用Putty + Xming 远程登录Linux显示图形化界面

    一般我们远程登录linux 服务器,都是使用非加密的 telnet 或者加密的 ssh.这些登录方式有一个特点:只能登录字符界面,不能运行那些带有GUI界面的程序. 有时候为了学习或者工作的需要,我们 ...

  7. 如何用git将本地项目push到Github

    Step1 github页面:创建一个仓库(如何创建github仓库,你可能需要参考这篇教程),库名(Repository name)为你打算放在github上的项目名称.例如: ![](https: ...

  8. rem布局和使用js rem动态改变字体大小,自适应

    解决rem文字动态改变字体大小: <script> console.log(window.devicePixelRatio); var iScale = 1; iScale = iScal ...

  9. XSS之绕过WAF总结

    来源<XSS跨站脚本攻击剖析与防御>&<WEB前端技术揭秘> 一.一般测试方法 步骤: 0.总则:见框就插 1.在输入框随便输入一些简单的字符,如 aaa,方便后续查找 ...

  10. Java进行二元操作类型转换

    当对两个数值进行二元操作时,先要将两个操作数转换为同一种类型,然后再进行计算. 如果两个操作数中有一个是double类型,另一个操作数就会转换为double类型. 否则,如果其中一个操作数是float ...