
Python與Ollama的開發(fā)案例
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。

—
## 二、創(chuàng)建 `ApplicationDbContext`
在項目根目錄下:
1. 新建文件夾 `Data`。
2. 在 `Data` 中新增 `ApplicationDbContext.cs`,內(nèi)容如下:

“`csharp
using Microsoft.EntityFrameworkCore;
namespace MyEfCoreApp.Data
{
public class ApplicationDbContext : DbContext
{
public ApplicationDbContext(DbContextOptions
: base(options)
{
}
// 在此聲明要映射的表
public DbSet
public DbSet
}
}
“`
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; }
}
“`

—
## 三、在 `Program.cs` 中注冊 DbContext
打開 `Program.cs`,在調(diào)用 `builder.Build()` 之前,添加以下代碼以注冊 EF Core DbContext:

“`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`(或自定義名稱)。

2. **在 `appsettings.json` 中添加連接字符串**
“`json
{
“ConnectionStrings”: {
“DefaultConnection”: “Server=YOUR_DESKTOP_NAME;Database=FinShark;Trusted_Connection=True;TrustServerCertificate=True;Encrypt=False;”
},
// … 其他配置
}
“`

* `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` 表。

* 可右擊某表 → “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