ASP.NET Core Web API 快速集成 Entity Framework Core:从安装到数据预热全流程
作者:xiaoxin.gao · 2025-06-27 · 阅读时间:5分钟
.NET Core Web API 数据库集成
ASP.NET Core Entity Framework Core 安装
DataContext DbSet 属性 配置
EF Core 获取连接字符串技巧
EF Core 项目配置
OnModelCreating 多对多关系 示例
引言:为何选择 EF Core? Entity Framework Core(EF Core)是 .NET 平 […]
文章目录
引言:为何选择 EF Core?
Entity Framework Core(EF Core)是 .NET 平台上最流行的 ORM 框架,省去绝大多数手写 SQL 的烦恼。只需少量配置,即可实现模型与数据库的双向映射与 CRUD 操作。
一、安装 SQL Server Express 与 SSMS 并创建数据库
- 下载并安装 SQL Server Express,勾选“Basic”一键模式,无需复杂配置。
- 同步安装 SQL Server Management Studio (SSMS),启动后右键 Databases → New Database,命名为
PokemonReview
并确认,即完成数据库创建。
二、获取连接字符串小技巧【截图时间节点:1:56】
- 在 Visual Studio 中打开 SQL Server Object Explorer,点击 Add SQL Server,输入 SSMS 中 Server Name 登陆。
- 展开 Databases → PokemonReview,右击查看 Connection String。
-
将此字符串粘入
appsettings.json
中:{ "ConnectionStrings": { "DefaultConnection": " < Your_Connection_String_Here > " } }
此法避免繁琐手动拼接,几秒即可拿到正确格式。
三、安装 EF Core 及相关 NuGet 包
在 VS Code 的 NuGet Package Manager 中,搜索并安装:
Microsoft.EntityFrameworkCore.SqlServer
(核心数据库提供者)Microsoft.EntityFrameworkCore.Design
(设计时支持)
确保选用 Latest Stable 版本,并在 .csproj
中见到对应 < PackageReference >
条目。
四、创建 DataContext
并注册实体集合
-
新建
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 … */ }
- 注意
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 Console 或 CLI 中运行:
dotnet ef migrations add InitialCreate
dotnet ef database update
add
生成迁移代码;update
将表结构同步到 SQL Server。
八、数据 Seed:预填充测试数据
- 在项目根目录新建
SeedService.cs
,编写SeedDataAsync(DataContext ctx)
,往DbContext
中添加初始实体并调用SaveChangesAsync()
。 -
在
Program.cs
注入并调用:builder.Services.AddTransient < SeedService > (); var app = builder.Build(); await app.Services.GetRequiredService < SeedService > ().SeedDataAsync();
- 在终端进入 API 文件夹,执行
dotnet run
,检查数据库中是否已有示例数据。
小结
- 本文涵盖 从环境安装到数据库初始化与数据预热 的 EF Core 全流程。
- 关键步骤:获取连接字符串 → 安装 NuGet 包 → 创建
DbContext
→ 配置关系 → 注册 DI → 执行 Migrations → Seed。 - 下一篇,我们将基于此完成首个实体 CRUD 接口的编写及测试。
原文引自YouTube视频:https://www.youtube.com/watch?v=EmV_IBYIlyo
热门推荐
一个账号试用1000+ API
助力AI无缝链接物理世界 · 无需多次注册
3000+提示词助力AI大模型
和专业工程师共享工作效率翻倍的秘密
热门API
- 1. AI文本生成
- 2. AI图片生成_文生图
- 3. AI图片生成_图生图
- 4. AI图像编辑
- 5. AI视频生成_文生视频
- 6. AI视频生成_图生视频
- 7. AI语音合成_文生语音
- 8. AI文本生成(中国)