一、安裝 SQL Server Express 與 SSMS 并創建數據庫

  1. 下載并安裝 SQL Server Express,勾選“Basic”一鍵模式,無需復雜配置。
  2. 同步安裝 SQL Server Management Studio (SSMS),啟動后右鍵 Databases → New Database,命名為 PokemonReview 并確認,即完成數據庫創建。

二、獲取連接字符串小技巧【截圖時間節點:1:56】

  1. 在 Visual Studio 中打開 SQL Server Object Explorer,點擊 Add SQL Server,輸入 SSMS 中 Server Name 登陸。
  2. 展開 Databases → PokemonReview,右擊查看 Connection String

  1. 將此字符串粘入 appsettings.json 中:

    {
     "ConnectionStrings": {
       "DefaultConnection": " < Your_Connection_String_Here > "
     }
    }

此法避免繁瑣手動拼接,幾秒即可拿到正確格式。


三、安裝 EF Core 及相關 NuGet 包

在 VS Code 的 NuGet Package Manager 中,搜索并安裝:

確保選用 Latest Stable 版本,并在 .csproj 中見到對應 < PackageReference > 條目。


四、創建 DataContext 并注冊實體集合

  1. 新建 Data/DataContext.cs,繼承自 DbContext

    public class DataContext : DbContext
    {
       public DataContext(DbContextOptions < DataContext >  options) 
           : base(options) { }
    
       public DbSet < Pokemon >           Pokemons { get; set; }
       public DbSet < Owner >             Owners   { get; set; }
       public DbSet < PokemonOwner >      PokemonOwners { get; set; }
       /* … 其他 DbSet … */
    }
  2. 注意 DbSet < T > 屬性名稱應 “復數” 以符合 EF 約定。

五、在 OnModelCreating 配置多對多關系

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    // Pokemon ←→ Category 多對多 
    modelBuilder.Entity < PokemonCategory > ()
        .HasKey(pc = > new { pc.PokemonId, pc.CategoryId });
    modelBuilder.Entity < PokemonCategory > ()
        .HasOne(pc = > pc.Pokemon)
        .WithMany(p = > p.PokemonCategories)
        .HasForeignKey(pc = > pc.PokemonId);
    modelBuilder.Entity < PokemonCategory > ()
        .HasOne(pc = > pc.Category)
        .WithMany(c = > c.PokemonCategories)
        .HasForeignKey(pc = > pc.CategoryId);

    // 同理配置 PokemonOwner 多對多...
}

通過 Fluent API 明確聲明聯合主鍵與雙向導航,使 EF Core 正確生成中間表。


六、在 Program.cs 注冊 DbContext

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddDbContext < DataContext > (options = >
    options.UseSqlServer(
        builder.Configuration.GetConnectionString("DefaultConnection")));

DataContext 注入 DI 容器,即可在控制器、倉儲中通過構造注入使用。


七、執行 Migrations 并更新數據庫

Package Manager ConsoleCLI 中運行:

dotnet ef migrations add InitialCreate
dotnet ef database update

八、數據 Seed:預填充測試數據

  1. 在項目根目錄新建 SeedService.cs,編寫 SeedDataAsync(DataContext ctx),往 DbContext 中添加初始實體并調用 SaveChangesAsync()
  2. Program.cs 注入并調用:

    builder.Services.AddTransient < SeedService > ();
    var app = builder.Build();
    await app.Services.GetRequiredService < SeedService > ().SeedDataAsync();
  3. 在終端進入 API 文件夾,執行 dotnet run,檢查數據庫中是否已有示例數據。

小結

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

上一篇:

ASP.NET Core Web API 數據校驗實戰:路由約束與 DataAnnotations

下一篇:

REST API 基礎:定義、示例及使用方法
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

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

10個渠道
一鍵對比試用API 限時免費