我给你整理最实用、企业级、一步到位的学习路线 + 完整可运行代码,专门针对 Web API + EF Core 这两个核心技能。
你学完这套,就能独立做: ✅ 后端接口开发 ✅ 数据库增删改查 ✅ 企业标准项目结构 ✅ 对接前端 / 小程序 / App
一、学习路线(最快 3 天掌握)
- 创建 Web API 项目
- 理解控制器、路由、请求方法(GET/POST/PUT/DELETE)
- 安装 EF Core(数据库 ORM)
- 搭建实体类 + 数据库上下文
- 执行迁移,自动建表
- 实现完整 CRUD(增删改查)接口
- 依赖注入、返回规范、Swagger 接口文档
- 实战项目结构
二、环境准备
- 安装 .NET 8 SDK
- VS 2022 / Rider / VS Code(任意一个)
- SQL Server / SQLite(教程用 SQLite,无需安装数据库)
三、创建项目
dotnet new webapi -n MyWebApi
cd MyWebApi
四、安装 EF Core 包
dotnet add package Microsoft.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore.Sqlite
dotnet add package Microsoft.EntityFrameworkCore.Tools
五、编写代码(完整复制可用)
1. 创建实体类(Model)
Models/Product.cs
namespace MyWebApi.Models;
// 商品表实体
public class Product
{
public int Id { get; set; }
public string Name { get; set; } = string.Empty;
public decimal Price { get; set; }
public int Stock { get; set; }
}
2. 创建数据库上下文(EF Core 核心)
Data/AppDbContext.cs
using Microsoft.EntityFrameworkCore;
using MyWebApi.Models;
namespace MyWebApi.Data;
public class AppDbContext : DbContext
{
// 注入配置
public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { }
// 对应数据库表
public DbSet<Product> Products => Set<Product>();
}
3. 在 Program.cs 注册数据库
using Microsoft.EntityFrameworkCore;
using MyWebApi.Data;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
// 👇 注册 SQLite 数据库
builder.Services.AddDbContext<AppDbContext>(options =>
options.UseSqlite("Data Source=MyDatabase.db"));
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.Run();
4. 执行迁移,自动创建数据库
打开程序包管理器控制台或终端执行:
dotnet ef migrations add InitialCreate
dotnet ef database update
执行后会自动生成数据库文件。
5. 编写 API 控制器(完整 CRUD)
Controllers/ProductsController.cs
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using MyWebApi.Data;
using MyWebApi.Models;
namespace MyWebApi.Controllers;
[Route("api/[controller]")]
[ApiController]
public class ProductsController : ControllerBase
{
private readonly AppDbContext _context;
// 构造函数注入(.NET Core 核心:依赖注入)
public ProductsController(AppDbContext context)
{
_context = context;
}
// 1. 获取所有商品
[HttpGet]
public async Task<ActionResult<List<Product>>> GetAll()
{
return await _context.Products.ToListAsync();
}
// 2. 根据ID获取单个商品
[HttpGet("{id}")]
public async Task<ActionResult<Product>> GetById(int id)
{
var product = await _context.Products.FindAsync(id);
if (product == null) return NotFound();
return product;
}
// 3. 新增商品
[HttpPost]
public async Task<ActionResult<Product>> Add(Product product)
{
_context.Products.Add(product);
await _context.SaveChangesAsync();
return CreatedAtAction(nameof(GetById), new { id = product.Id }, product);
}
// 4. 修改商品
[HttpPut("{id}")]
public async Task<IActionResult> Update(int id, Product product)
{
if (id != product.Id) return BadRequest();
_context.Entry(product).State = EntityState.Modified;
await _context.SaveChangesAsync();
return NoContent();
}
// 5. 删除商品
[HttpDelete("{id}")]
public async Task<IActionResult> Delete(int id)
{
var product = await _context.Products.FindAsync(id);
if (product == null) return NotFound();
_context.Products.Remove(product);
await _context.SaveChangesAsync();
return NoContent();
}
}
六、运行项目
dotnet run
打开浏览器访问: https://localhost:5001/swagger
你会看到: ✅ 自动生成的接口文档 ✅ 5 个完整 CRUD 接口 ✅ 可直接测试调用
这就是企业最标准的 Web API + EF Core 项目。
七、你必须掌握的核心知识点
1. Web API 核心
[ApiController]:API 模式,自动模型验证[Route("api/[controller]")]:路由规则[HttpGet]/[HttpPost]:请求方式ActionResult<T>:规范返回值
2. EF Core 核心
DbContext:数据库连接DbSet<T>:数据表- 迁移命令:自动建表、更新表结构
- 异步方法:
async/await(企业必须用)
3. 依赖注入(DI)
private readonly AppDbContext _context;
public ProductsController(AppDbContext context)
{
_context = context;
}
这是 .NET Core 最核心的设计模式。
总结
- Web API:做接口
- EF Core:操作数据库
- 你现在拥有的是 .NET 后端开发 80% 工作内容
- 代码可直接用于毕设 / 面试 / 工作