# WebApi-项目 **Repository Path**: an-xiaoning/web-api-project ## Basic Information - **Project Name**: WebApi-项目 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-17 - **Last Updated**: 2025-06-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## WebApi项目 ### 1. 使用dotnet创建 ```bash # 创建新的WebApi项目 dotnet new webapi -n TodoApi ``` ### 2. Program文件中添加控制器支持和配置中间件 ```c# //添加控制器支持 builder.Services.AddControllers(); //配置中间件 app.UseRouting(); app.MapControllers(); ``` ### 3. 创建一个Controller控制器文件 ```C# [ApiController] [Route("api/[controller]")] public class BlogsController : ControllerBase { [HttpGet] public string Get(){ return "好好学习"; } } ``` `[ApiController]` 自动模型绑定,也就是可以自动从参数中获取请求传入的数据 ## 使用EFCore连接MySQL数据库 1. 数据库优先 先行设计好数据库,再使用EFCore连接的一个模式 2. 代码优先 先行定义好模型或者实体类型,再使用EFCore生成对应的数据库和表 + 安装依赖包 + 核心依赖包Microsoft.EntityFrameworkCore + 工具依赖包Microsoft.EntityFrameworkCore.Design + 数据库驱动 + mysql:Pomelo.EntityFrameworkCore.MySql + 安装命令:dotnet add package Pomelo.EntityFrameworkCore.MySql + 定义实体类型 + 定义数据库上下文 + 将数据库上下文注入容器 + 生成迁移文件 + 将迁移文件同步到数据库 #### 1. 在项目的 appsettings.json 文件中添加 MySQL 数据库的连接字符串: ```JSON { "ConnectionStrings": { "DefaultConnection": "Server=localhost;Database=yourdatabase;User=root;Password=yourpassword;" } } ``` #### 2. 创建一个继承自 DbContext 的类,并配置数据库上下文 ```cs public class AdminDbContext : DbContext { public AdminDbContext(DbContextOptions options) : base(options){} public DbSet Blogs{get;set;} } ``` 这里 `DbSet` 表示数据库中的一张表,`Blogs` 是对应的实体类。 #### 3. 在 Program.cs 文件中配置 DbContext 服务,并注入连接字符串 ```cs var connectionString = builder.Configuration.GetConnectionString("mysql"); builder.Services.AddDbContext(x => { var serverVersion = new MySqlServerVersion(new Version(8,0,3)); x.UseMySql(connectionString,serverVersion); }); ``` #### 4. 创建实体类Blogs ```cs public class Blogs { public int Id {get;set;} public string Title {get;set;}=null!; public string Author {get;set;}=null!; public string Content {get;set;}=null!; } ``` #### 5. 生成迁移文件 ```bash dotnet tool install --global dotnet-ef dotnet ef migrations add InitialCreate dotnet ef database update ```