ASP.NET Core 8 Web API EF Core 实践指南(第3课)
文章目录
引言
在现代软件开发中,数据库表与代码之间的“格式不匹配”常常让开发者头疼。Excel 表格虽然直观,但无法直接在代码中操作;原始数据库表也并非开发者友好的结构。

为此,ORM(对象关系映射)应运而生。Entity Framework Core(EF Core) 作为 .NET 平台上成熟的 ORM 框架,能够将数据库表映射成 C# 对象,简化数据访问与操作。本文将以 .NET 8 为示例,带你从零搭建 EF Core 与 SQL Server 的基础配置,并执行首次迁移,帮助你快速入门 EF Core。
一、环境与前置准备
-
.NET 8 项目
- 确保已安装 .NET SDK 8.0,并已在命令行执行
dotnet new webapi -n MyEfCoreApp创建一个 Web API 项目。
- 确保已安装 .NET SDK 8.0,并已在命令行执行
-
VS Code 与 NuGet Gallery 插件
- 打开 VS Code,按
Ctrl+Shift+X搜索 “NuGet Gallery”,点击安装。
- 打开 VS Code,按

- 安装完成后,按
Ctrl+Shift+P,输入NuGet: Add Package便可快速安装所需包。
-
所需 NuGet 包
dotnet add package Microsoft.EntityFrameworkCore.SqlServer dotnet add package Microsoft.EntityFrameworkCore.Tools dotnet add package Microsoft.EntityFrameworkCore.Design> 提示: 如果使用 .NET 7,将
SqlServer包版本对齐为 EF Core 7.x。

二、创建 ApplicationDbContext
在项目根目录下:
-
新建文件夹
Data。 -
在
Data中新增ApplicationDbContext.cs,内容如下:

using Microsoft.EntityFrameworkCore;
namespace MyEfCoreApp.Data
{
public class ApplicationDbContext : DbContext
{
public ApplicationDbContext(DbContextOptions < ApplicationDbContext > options)
: base(options)
{
}
// 在此声明要映射的表
public DbSet < Stock > Stocks { get; set; }
public DbSet < Comment > Comments { get; set; }
}
}
-
同目录下定义实体类
Stock与Comment,例如:public class Stock { public int Id { get; set; } public string Symbol { get; set; } public decimal Price { get; set; } } public class Comment { public int Id { get; set; } public int StockId { get; set; } public string Content { get; set; } }

三、在 Program.cs 中注册 DbContext
打开 Program.cs,在调用 builder.Build() 之前,添加以下代码以注册 EF Core DbContext:

using MyEfCoreApp.Data;
using Microsoft.EntityFrameworkCore;
var builder = WebApplication.CreateBuilder(args);
// 从 appsettings.json 读取名为 "DefaultConnection" 的连接字符串
builder.Services.AddDbContext < ApplicationDbContext > (options = >
options.UseSqlServer(
builder.Configuration.GetConnectionString("DefaultConnection")
)
);
var app = builder.Build();
// … 其他中间件或路由配置
app.Run();
注意: 一定要保证
AddDbContext调用在builder.Build()之前,否则无法正确注入。
四、SQL Server 数据库配置
-
在 SQL Server Management Studio(SSMS)中新建数据库
- 启动 SSMS → 右击 “Databases” → “New Database…” → 名称设为
FinShark(或自定义名称)。
- 启动 SSMS → 右击 “Databases” → “New Database…” → 名称设为

-
在
appsettings.json中添加连接字符串{ "ConnectionStrings": { "DefaultConnection": "Server=YOUR_DESKTOP_NAME;Database=FinShark;Trusted_Connection=True;TrustServerCertificate=True;Encrypt=False;" }, // … 其他配置 }

Server:你的本地服务器实例名称(在 SSMS 中可见)。Database:与你在 SSMS 中新建的数据库名一致。Trusted_Connection=True与Encrypt=False保证本地开发时连接顺畅。
五、执行 EF Core 迁移
EF Core 迁移(Migrations)用于生成建库脚本并更新数据库结构。
-
添加首次迁移
dotnet ef migrations add Init- 该命令会在项目中生成
Migrations文件夹,包含用于构建数据库的 C# 脚本。
- 该命令会在项目中生成
-
更新数据库
dotnet ef database update- 真正将迁移脚本应用到 SQL Server,创建表结构。
-
验证结果
- 在 SSMS 中右击数据库 → 刷新 → 展开 “Tables” 可见
Stocks、Comments以及__EFMigrationsHistory表。
- 在 SSMS 中右击数据库 → 刷新 → 展开 “Tables” 可见

- 可右击某表 → “Select Top 1000 Rows” 查看空表结构是否符合预期。
小结与下一步
至此,你已完成以下工作:
- 安装必要的 NuGet 包(EF Core SqlServer、Tools、Design)
- 创建并配置
ApplicationDbContext,声明DbSet < T > - 在
Program.cs中注册 DbContext,绑定连接字符串 - 在 SSMS 中新建数据库,并在
appsettings.json中配置ConnectionStrings - 通过
dotnet ef migrations add与dotnet ef database update完成首次 EF Core 迁移
接下来,你可以基于此基础实现对 Stocks 和 Comments 的增删改查操作,并深入了解 Deferred Execution、Fluent API 或 Data Seeding 等高级功能,为你的 API 增强更多业务逻辑和性能优化。
SEO 关键词回顾:
- Entity Framework Core 教程
- .NET 8 EF Core 快速入门
- EF Core SQL Server 迁移
- 如何在 .NET 项目中配置 ApplicationDbContext
- dotnet ef migrations add 与 database update 区别
希望本文能帮助你快速上手 EF Core 与 SQL Server 集成!
原文引自YouTube视频:https://www.youtube.com/watch?v=SIQhe-yt3mA