所有文章 > API使用场景 > ASP.NET Core 8 Web API EF Core 实践指南(第3课)
ASP.NET Core 8 Web API EF Core 实践指南(第3课)

ASP.NET Core 8 Web API EF Core 实践指南(第3课)

## 引言

在现代软件开发中,数据库表与代码之间的“格式不匹配”常常让开发者头疼。Excel 表格虽然直观,但无法直接在代码中操作;原始数据库表也并非开发者友好的结构。

![](https://explinks-blog.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2025/06/1-6-1024×576.png)

为此,ORM(对象关系映射)应运而生。**Entity Framework Core(EF Core)** 作为 .NET 平台上成熟的 ORM 框架,能够将数据库表映射成 C# 对象,简化数据访问与操作。本文将以 .NET 8 为示例,带你从零搭建 EF Core 与 SQL Server 的基础配置,并执行首次迁移,帮助你快速入门 EF Core。

## 一、环境与前置准备

1. **.NET 8 项目**

* 确保已安装 .NET SDK 8.0,并已在命令行执行 `dotnet new webapi -n MyEfCoreApp` 创建一个 Web API 项目。

2. **VS Code 与 NuGet Gallery 插件**

* 打开 VS Code,按 `Ctrl+Shift+X` 搜索 “NuGet Gallery”,点击安装。

![](https://explinks-blog.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2025/06/2-3-1024×576.png)

* 安装完成后,按 `Ctrl+Shift+P`,输入 `NuGet: Add Package` 便可快速安装所需包。

3. **所需 NuGet 包**

“`bash
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。

![](https://explinks-blog.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2025/06/3-1-1024×576.png)

## 二、创建 `ApplicationDbContext`

在项目根目录下:

1. 新建文件夹 `Data`。

2. 在 `Data` 中新增 `ApplicationDbContext.cs`,内容如下:

![](https://explinks-blog.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2025/06/4-1-1024×576.png)

“`csharp
using Microsoft.EntityFrameworkCore;

namespace MyEfCoreApp.Data
{
public class ApplicationDbContext : DbContext
{
public ApplicationDbContext(DbContextOptions options)
: base(options)
{
}

// 在此声明要映射的表
public DbSet Stocks { get; set; }
public DbSet Comments { get; set; }
}
}
“`

3. 同目录下定义实体类 `Stock` 与 `Comment`,例如:

“`csharp
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; }
}
“`

![](https://explinks-blog.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2025/06/5-1-1024×576.png)

## 三、在 `Program.cs` 中注册 DbContext

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

![](https://explinks-blog.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2025/06/6-1024×576.png)

“`csharp
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 数据库配置

1. **在 SQL Server Management Studio(SSMS)中新建数据库**

* 启动 SSMS → 右击 “Databases” → “New Database…” → 名称设为 `FinShark`(或自定义名称)。

![](https://explinks-blog.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2025/06/7-1024×576.png)

2. **在 `appsettings.json` 中添加连接字符串**

“`json
{
“ConnectionStrings”: {
“DefaultConnection”: “Server=YOUR_DESKTOP_NAME;Database=FinShark;Trusted_Connection=True;TrustServerCertificate=True;Encrypt=False;”
},
// … 其他配置
}
“`

![](https://explinks-blog.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2025/06/8-1024×576.png)

* `Server`:你的本地服务器实例名称(在 SSMS 中可见)。
* `Database`:与你在 SSMS 中新建的数据库名一致。
* `Trusted_Connection=True` 与 `Encrypt=False` 保证本地开发时连接顺畅。

## 五、执行 EF Core 迁移

EF Core 迁移(Migrations)用于生成建库脚本并更新数据库结构。

1. **添加首次迁移**

“`bash
dotnet ef migrations add Init
“`

* 该命令会在项目中生成 `Migrations` 文件夹,包含用于构建数据库的 C# 脚本。

2. **更新数据库**

“`bash
dotnet ef database update
“`

* 真正将迁移脚本应用到 SQL Server,创建表结构。

3. **验证结果**

* 在 SSMS 中右击数据库 → 刷新 → 展开 “Tables” 可见 `Stocks`、`Comments` 以及 `__EFMigrationsHistory` 表。

![](https://explinks-blog.oss-cn-beijing.aliyuncs.com/wp-content/uploads/2025/06/9-1024×576.png)

* 可右击某表 → “Select Top 1000 Rows” 查看空表结构是否符合预期。

## 小结与下一步

至此,你已完成以下工作:

* 安装必要的 NuGet 包(**EF Core SqlServer**、**Tools**、**Design**)
* 创建并配置 `ApplicationDbContext`,声明 `DbSet`
* 在 `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

#你可能也喜欢这些API文章!

我们有何不同?

API服务商零注册

多API并行试用

数据驱动选型,提升决策效率

查看全部API→
🔥

热门场景实测,选对API

#AI文本生成大模型API

对比大模型API的内容创意新颖性、情感共鸣力、商业转化潜力

25个渠道
一键对比试用API 限时免费

#AI深度推理大模型API

对比大模型API的逻辑推理准确性、分析深度、可视化建议合理性

10个渠道
一键对比试用API 限时免费