ASP.NET Core Web API 一对多关系详解:POCO、外键与实体映射
作者:xiaoxin.gao · 2025-06-27 · 阅读时间:4分钟
ASP.NET Core 一对多关系
EF Core 外键 映射
EF Core 导航属性 Collection 使用
Owner 与 Country 一对多示例
POCO 添加外键与导航属性
Web API 模型 关联
引言:什么是一对多关系? 在数据库设计中,一对多(1\:N)关系是最常见的关联类型:一个“主”实体可关联多条“ […]
引言:什么是一对多关系?
在数据库设计中,一对多(1\:N)关系是最常见的关联类型:一个“主”实体可关联多条“从”实体记录。核心是通过 外键(Foreign Key) 将表链接起来。
例如,Country 表中的一条记录(国家)可对应多个 Owner(训练师),它们通过 CountryId 外键关联。

一、UML 类图可视化关系

使用 UML 类图帮助梳理实体与字段,并直观标注关系:
Pokemon 1 ──── * Review
Country 1 ──── * Owner
Reviewer 1 ──── * Review
1端显示单一对象,*端显示集合。- Many-to-many(N\:N)关系会额外通过中间表实现,本文下节再详解。
二、在实体中添加集合导航属性(“多”端)
1. Pokemon 与 Review

在 Models/Pokemon.cs 内添加:
public class Pokemon
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime BirthDate { get; set; }
// 一对多:一个 Pokemon 可有多条 Review
public ICollection < Review > Reviews { get; set; }
}
2. Country 与 Owner

在 Models/Country.cs 内添加:
public class Country
{
public int Id { get; set; }
public string Name { get; set; }
// 一对多:一个 Country 可有多名 Owner
public ICollection < Owner > Owners { get; set; }
}
3. Reviewer 与 Review

在 Models/Reviewer.cs 内添加:
public class Reviewer
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
// 一对多:一个 Reviewer 可写多条 Review
public ICollection < Review > Reviews { get; set; }
}
三、在实体中添加单对象导航属性(“一”端)
Owner 引用 Country

在 Models/Owner.cs 中添加外键与导航属性:
public class Owner
{
public int Id { get; set; }
public string Name { get; set; }
public string Gym { get; set; }
// 外键字段
public int CountryId { get; set; }
// 一对多:在 Owner 中持有单一 Country 对象
public Country Country { get; set; }
}
Review 引用 Reviewer 与 Pokemon

在 Models/Review.cs 中添加:
public class Review
{
public int Id { get; set; }
public string Title { get; set; }
public string Text { get; set; }
// 外键与导航属性
public int ReviewerId { get; set; }
public Reviewer Reviewer { get; set; }
public int PokemonId { get; set; }
public Pokemon Pokemon { get; set; }
}
小结与下一步
- 一对多关系 通过在“多”端实体中声明
ICollection < T >导航属性,以及在“单”端实体中声明对应外键与单一导航属性来实现。 - 外键字段(如
CountryId、ReviewerId)既用于数据库约束,也让 EF Core 正确映射关联。 - 下节将演示 多对多(N\:N)关系,包括中间表(Join Entity)的配置方法。
原文引自YouTube视频:https://www.youtube.com/watch?v=DWi-VHElmRE
热门推荐
一个账号试用1000+ API
助力AI无缝链接物理世界 · 无需多次注册
3000+提示词助力AI大模型
和专业工程师共享工作效率翻倍的秘密
最新文章
- OWASP API十大漏洞及DAST如何保护您 …
- API安全在物联网(IoT)中的关键作用
- Java后端API接口开发规范
- PyJWT:轻松搞定Token认证,让你的API更安全!
- 2025年7月GitHub 上热门的10大API开源项目
- 构建远程医疗应用的10个最佳Telehealth API选项
- 使用 FastAPI、Docker 和 Hugging Face Transformers 的文本分类 API
- IdeaGitLab 插件API Token is not valid解决方案
- API架构设计基础
- 什么是GPT-4?完整指南
- 最佳API测试工具:REST和SOAP自动化 – Parasoft
- 如何使用Ollama(完整Ollama速查表)- Apidog