
HTTP API vs WebSocket API:選擇哪個來實現實時通信?
為此,ORM(對象關系映射)應運而生。Entity Framework Core(EF Core) 作為 .NET 平臺上成熟的 ORM 框架,能夠將數據庫表映射成 C# 對象,簡化數據訪問與操作。本文將以 .NET 8 為示例,帶你從零搭建 EF Core 與 SQL Server 的基礎配置,并執行首次遷移,幫助你快速入門 EF Core。
.NET 8 項目
dotnet new webapi -n MyEfCoreApp
創建一個 Web API 項目。VS Code 與 NuGet Gallery 插件
Ctrl+Shift+X
搜索 “NuGet Gallery”,點擊安裝。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 Management Studio(SSMS)中新建數據庫
FinShark
(或自定義名稱)。在 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 遷移(Migrations)用于生成建庫腳本并更新數據庫結構。
添加首次遷移
dotnet ef migrations add Init
Migrations
文件夾,包含用于構建數據庫的 C# 腳本。更新數據庫
dotnet ef database update
驗證結果
Stocks
、Comments
以及 __EFMigrationsHistory
表。至此,你已完成以下工作:
ApplicationDbContext
,聲明 DbSet < T >
Program.cs
中注冊 DbContext,綁定連接字符串appsettings.json
中配置 ConnectionStrings
dotnet ef migrations add
與 dotnet ef database update
完成首次 EF Core 遷移接下來,你可以基于此基礎實現對 Stocks
和 Comments
的增刪改查操作,并深入了解 Deferred Execution、Fluent API 或 Data Seeding 等高級功能,為你的 API 增強更多業務邏輯和性能優化。
SEO 關鍵詞回顧:
希望本文能幫助你快速上手 EF Core 與 SQL Server 集成!
原文引自YouTube視頻:https://www.youtube.com/watch?v=SIQhe-yt3mA