# 23级5班MVCDemo **Repository Path**: myhfw003/grade-23-class-5-mvc-demo ## Basic Information - **Project Name**: 23级5班MVCDemo - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-03 - **Last Updated**: 2025-01-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 23级5班MVC的Demo ### 如何运行 1. 先克隆到本地,命令如下:git clone https://gitee.com/myhfw003/grade-23-class-5-mvc-demo.git 2. 打开一个终端,切换到Blog的目录中,执行如下命令:dotnet watch (前提是有安装运行时或者SDK) 3. 打开浏览器的新标签页,访问如下地址即可:http://localhost:5000/blogs/index,效果如下: ![20241203100847-2024-12-03-10-08-49](https://oss.9ihub.com/test/20241203100847-2024-12-03-10-08-49.png) ### Linq集成查询和Lambda表达式 1. First() FirstOrDefault() 获取集合中(符合条件的)第一个 - First() 这个如果没有获取到,则报错 - FirstOrDefault() 没有获取到,则返回Null 2. Single() SingleOrDefault() 获取集合中(符合条件)的其中一个 - Single() 这个如果没有获取到,则报错 - SingleOrDefault() 没有获取到,则返回Null 3. Where() 获取集合中符合条件的元素,将它们筛选出来放入一个新的集合中返回 - Where 查找符合条件的内容 4. Select() 返回指定内容 - Select() 返回指定内容 Select(x=>new {x.Id}) ### 持久化及其应用 - 结绳记事 - 甲骨文 - 碑 - 木简 - 竹简 - 纸 - 账本 - 电子记事本、Excel - 数据库 - 常见数据库 - Sqlserver 微软 商业 有免费版(限制) - Mysql/MariaDb 免费 也有商业版 - PostgreSQL 完全开源免费 许可宽松 - Oracle 商业数据库 贵 - 达梦 国产数据库 - 人大金仓 国产数据库 - sqllite 桌面数据库 - Redis 非关系型数据库 内存数据库 一般用于缓存 NoSQL - MongoDB 最像关系型数据库非关系型数据 NoSQL - 常见ORM工具 (ORM工具其实就是在应用和数据库之间担任通讯员) - Dapper 写法麻烦,运行速度很快 - EntityFrameworkCore 写法简单,运行速度略慢 ### EntityFrameworkCore的使用步骤 1. 安装EntityFrameworkCore,命令如下 ```bash dotnet add package Microsoft.EntityFrameworkCore.SqlServer ``` 2. 创建实体类型(数据模型) 3. 创建数据库上下文,配置好 4. 进行数据迁移(它的成功有2个前提:1、程序不能有编译错误;2、程序必须停止运行),命令如下: ```bash // 需要dotnet-ef工具,还需要什么一个依赖包,名为Microsoft.EntityFrameworkCore.Design dotnet tool install --global dotnet-ef dotnet add package Microsoft.EntityFrameworkCore.Design dotnet ef migrations add Init ``` 5. 将生成的数据迁移文件,同步更新到数据库,命令如下: ``` dotnet ef database update ``` ### 更换数据库到PostgreSQL 条件1:得有一个可用的数据库(远程、本地均可) - 安装PostgreSQL - 允许远程连接 - 修改超级管理员postgres的密码,密码为强密码 - 修改配置文件postgresql.conf - 修改配置文件pg_hba.conf 条件2:应用程序把Microsoft.EntityFrameworkCore.SqlServer换成NpgPg.EntityFrameworkCore.PostgreSql - 移除原来的数据库驱动程序 dotnet remove package Microsoft.EntityFrameworkCore.SqlServer - 安装新的数据库驱动程序 dotnet add package NpgSql.EntityFrameworkCore.PostgreSql - 删除原来的数据库迁移文件,同时重新生成新的数据库迁移文件 - dotnet ef migrations add InitCreate - dotnet ef database update ### 在Linux上服务器上托管dotnet 进程,这里使用pm2 pm2依赖nodejs,所以需要安装nodejs 为了更好的安装nodejs,我们这里需要nvm,所以我们需要安装nvm @startmindmap * 控制器返回类型 * 一般数据类型 直接返回如int、double、string、IEnumerable等数据类型 * IActionResult类型 一个接口,用于返回HTTP状态信息,如200、301、401、404、500等 * 视图 * 重定向 * ActionResult类型 将一般数据类型和HTTP状态信息混合使用 * 特定于格式的操作结果:如JsonResult和ContentResult * POCO(普通旧CLR对象) @endmindmap