From e66873d784228c3894f2033d4609a4119a95054f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E7=A3=8A?= <2466435919@qq.com> Date: Sun, 14 Jul 2024 19:26:13 +0800 Subject: [PATCH] web --- "\346\236\227\347\243\212/2024-07-08.md" | 8 +++ "\346\236\227\347\243\212/2024-07-09.md" | 66 ++++++++++++++++++++++++ "\346\236\227\347\243\212/2024-07-10.md" | 65 +++++++++++++++++++++++ "\346\236\227\347\243\212/2024-07-11.md" | 17 ++++++ "\346\236\227\347\243\212/2024-07-12.md" | 54 +++++++++++++++++++ 5 files changed, 210 insertions(+) create mode 100644 "\346\236\227\347\243\212/2024-07-08.md" create mode 100644 "\346\236\227\347\243\212/2024-07-09.md" create mode 100644 "\346\236\227\347\243\212/2024-07-10.md" create mode 100644 "\346\236\227\347\243\212/2024-07-11.md" create mode 100644 "\346\236\227\347\243\212/2024-07-12.md" diff --git "a/\346\236\227\347\243\212/2024-07-08.md" "b/\346\236\227\347\243\212/2024-07-08.md" new file mode 100644 index 0000000..0788496 --- /dev/null +++ "b/\346\236\227\347\243\212/2024-07-08.md" @@ -0,0 +1,8 @@ +## 远程连接主机 +ssh admin@192.168.1.2 +## 查看主机名 +hostname +## 修改主机名 +hostnamectl set-hostname zhujiming +# 重启 +reboot \ No newline at end of file diff --git "a/\346\236\227\347\243\212/2024-07-09.md" "b/\346\236\227\347\243\212/2024-07-09.md" new file mode 100644 index 0000000..9502644 --- /dev/null +++ "b/\346\236\227\347\243\212/2024-07-09.md" @@ -0,0 +1,66 @@ +@startmindmap +* EFCore + * 基础命令 + * dotnet add webapi -n 项目名 + * dotnet run 创建运行程序 + * dotnet build 创建项目 + * dotnet list package 查看依赖包列表 + * 项目配置 + * 依赖包 + * dotnet add package 依赖包包名 + * Microsoft.EntityFrameworkCore + * Microsoft.EntityFrameworkCore.SqlServer + * Microsoft.EntityFrameworkCore.Design + * Microsoft.EntityFrameworkCore.Tools + * 安装工具 + * dotnet tool install --global dotnet-ef + * 添加迁移文件:dotnet ef migrations add 文件名 + * 将迁移映射到数据库:dotnet ef database update + * 基础文件设置 + * Program.cs + * 创建IHost,配置服务器 + * Startup.cs + * 指定响应请求的方法 + * 将服务注入到IServiceCollection服务容器中 +@endmindmap +``` +```plantuml.jar +@startmindmap +* 个性仓储 + * Domain实体类 + * 创建模块类,定义字段 + * Db 数据 + * 创建表,添加数据种子 + * 将当前类定义为static,以供外界使用 + * Interface 仓储接口 + * 定义数据的增删改查方法 + * Service 服务 + * 实现仓储接口 + * 使接口能在程序中使用 + * 在Startup.cs文件中配置service.AddScoped() + * Controller 控制器 + * 定义路由,不同路由实现对数据的增删改查 + * 通过依赖构造函数注入使用定义的接口,从而使用其方法 +@endmindmap +``` +```plantuml.jar +@startmindmap +* 通用仓储 + * Domain实体类 + * 创建模块类,定义字段 + * DbContext 数据库上下文 + * 创建表,添加数据种子 + * 创建参数为DbContextOptions的构造函数 + * services.AddDbContext() + * Interface 仓储接口 + * 第一个基础接口为增删改查等不需使用Id的方法 + * 第二个为,需使用Id的方法 + * 创建指定对象的仓储接口,使其继承基础仓储,还可以单独定义方法 + * Service 服务 + * 定义一个基础类,实现仓储的所有接口 + * 创建指定对象的类,继承基础类及自身接口 + * Controller 控制器 + * 定义路由,不同路由实现对数据的增删改查 + * 通过依赖构造函数注入使用指定对象的仓储接口,从而使用其方法 +@endmindmap +``` \ No newline at end of file diff --git "a/\346\236\227\347\243\212/2024-07-10.md" "b/\346\236\227\347\243\212/2024-07-10.md" new file mode 100644 index 0000000..5eb92db --- /dev/null +++ "b/\346\236\227\347\243\212/2024-07-10.md" @@ -0,0 +1,65 @@ + + + + + + diff --git "a/\346\236\227\347\243\212/2024-07-11.md" "b/\346\236\227\347\243\212/2024-07-11.md" new file mode 100644 index 0000000..d2c8287 --- /dev/null +++ "b/\346\236\227\347\243\212/2024-07-11.md" @@ -0,0 +1,17 @@ +分层的优点: + +1、层次分明,各司其职:每层都有各自的责任,各层级相互独立,上层不需要知道下层的内部实现,上层的改动不会影响下一层。 + +2、易于开发,便于调试:分层结构使得开发人员可以专注于谋一层进行开发,进行调试时,可以针对每一层进行单独调试。 + +3、促进标准,移植复用:可替换任意一层,如当前数据层读数据库,可替换为读文件数据,取网络数据。亦可移植到其他项目。 + +4、。。。。。。 + +分层的缺点: + +1、降低性能:一个简单的数据呈现,需逐层返回且中间的数据转换等都耗费时间。 + +2、级联修改:在呈现层中增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。 + +3、。。。。。。 \ No newline at end of file diff --git "a/\346\236\227\347\243\212/2024-07-12.md" "b/\346\236\227\347\243\212/2024-07-12.md" new file mode 100644 index 0000000..833aa63 --- /dev/null +++ "b/\346\236\227\347\243\212/2024-07-12.md" @@ -0,0 +1,54 @@ +5、创建Controller + +在MWebAPI项目中新建UserInfoController + + +[ApiController] +[Route("[controller]/[action]")] +public class UserInfoController : Controller +{ + private readonly IUserInfoServices _services = new UserInfoServices(); + [HttpGet] + public UserInfoDto GetUserInfo() + { + return _services.GetUserInfo(); + } +} + +启动项目,浏览器输入:http://localhost:5000/UserInfo/GetUserInfo,数据返回成功。 + + + +五、服务注入 +此时项目中UserInfoController的 _services 是new出来的,UserInfoServices 的_rep也是如此,目前比较流行的是使用依赖注入的方式去注入服务,下面我们改写Services及Controller,如下: + + +public class UserInfoServices : IUserInfoServices +{ + private readonly IUserInfoRepository _rep; + public UserInfoServices(IUserInfoRepository rep) + { + _rep = rep; + } + public UserInfoDto GetUserInfo() + { + var entity = _rep.GetUserInfo(); + UserInfoDto dto = new UserInfoDto { UserName = entity.UserName, Age = entity.Age, Address = entity.Address }; + return dto; + } +} + +public class UserInfoController : Controller +{ + private readonly IUserInfoServices _services; + public UserInfoController(IUserInfoServices services) + { + _services = services; + } +[HttpGet] +public UserInfoDto GetUserInfo() +{ + return _services.GetUserInfo(); +} + +} \ No newline at end of file -- Gitee