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)

## 二、創(chuàng)建 `ApplicationDbContext`

在項目根目錄下:

1. 新建文件夾 `Data`。

2. 在 `Data` 中新增 `ApplicationDbContext.cs`,內(nèi)容如下:

![](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`,在調(diào)用 `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` 調(diào)用在 `builder.Build()` 之前,否則無法正確注入。

## 四、SQL Server 數(shù)據(jù)庫配置

1. **在 SQL Server Management Studio(SSMS)中新建數(shù)據(jù)庫**

* 啟動 SSMS → 右擊 “Databases” → “New Database…” → 名稱設(shè)為 `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`:你的本地服務(wù)器實例名稱(在 SSMS 中可見)。
* `Database`:與你在 SSMS 中新建的數(shù)據(jù)庫名一致。
* `Trusted_Connection=True` 與 `Encrypt=False` 保證本地開發(fā)時連接順暢。

## 五、執(zhí)行 EF Core 遷移

EF Core 遷移(Migrations)用于生成建庫腳本并更新數(shù)據(jù)庫結(jié)構(gòu)。

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

“`bash
dotnet ef migrations add Init
“`

* 該命令會在項目中生成 `Migrations` 文件夾,包含用于構(gòu)建數(shù)據(jù)庫的 C# 腳本。

2. **更新數(shù)據(jù)庫**

“`bash
dotnet ef database update
“`

* 真正將遷移腳本應(yīng)用到 SQL Server,創(chuàng)建表結(jié)構(gòu)。

3. **驗證結(jié)果**

* 在 SSMS 中右擊數(shù)據(jù)庫 → 刷新 → 展開 “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” 查看空表結(jié)構(gòu)是否符合預(yù)期。

## 小結(jié)與下一步

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

* 安裝必要的 NuGet 包(**EF Core SqlServer**、**Tools**、**Design**)
* 創(chuàng)建并配置 `ApplicationDbContext`,聲明 `DbSet`
* 在 `Program.cs` 中注冊 DbContext,綁定連接字符串
* 在 SSMS 中新建數(shù)據(jù)庫,并在 `appsettings.json` 中配置 `ConnectionStrings`
* 通過 `dotnet ef migrations add` 與 `dotnet ef database update` 完成首次 EF Core 遷移

接下來,你可以基于此基礎(chǔ)實現(xiàn)對 `Stocks` 和 `Comments` 的增刪改查操作,并深入了解 **Deferred Execution**、**Fluent API** 或 **Data Seeding** 等高級功能,為你的 API 增強(qiáng)更多業(yè)務(wù)邏輯和性能優(yōu)化。

***SEO 關(guān)鍵詞回顧:***

* **Entity Framework Core 教程**
* **.NET 8 EF Core 快速入門**
* **EF Core SQL Server 遷移**
* **如何在 .NET 項目中配置 ApplicationDbContext**
* **dotnet ef migrations add 與 database update 區(qū)別**

希望本文能幫助你快速上手 EF Core 與 SQL Server 集成!

原文引自YouTube視頻:https://www.youtube.com/watch?v=SIQhe-yt3mA

上一篇:

使用 Node.js 構(gòu)建 API 服務(wù)器:從入門到實踐

下一篇:

如何使用 ASP.NET Core 實現(xiàn)評論更新功能:完整實戰(zhàn)講解
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊

多API并行試用

數(shù)據(jù)驅(qū)動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個渠道
一鍵對比試用API 限時免費(fèi)

#AI深度推理大模型API

對比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費(fèi)