所有文章 > API使用场景 > ASP.NET Core Web API 一对多关系详解:POCO、外键与实体映射
ASP.NET Core Web API 一对多关系详解:POCO、外键与实体映射

ASP.NET Core Web API 一对多关系详解:POCO、外键与实体映射

引言:什么是一对多关系?

在数据库设计中,一对多(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 > 导航属性,以及在“单”端实体中声明对应外键与单一导航属性来实现。
  • 外键字段(如 CountryIdReviewerId)既用于数据库约束,也让 EF Core 正确映射关联。
  • 下节将演示 多对多(N\:N)关系,包括中间表(Join Entity)的配置方法。

原文引自YouTube视频:https://www.youtube.com/watch?v=DWi-VHElmRE

#你可能也喜欢这些API文章!

我们有何不同?

API服务商零注册

多API并行试用

数据驱动选型,提升决策效率

查看全部API→
🔥

热门场景实测,选对API

#AI文本生成大模型API

对比大模型API的内容创意新颖性、情感共鸣力、商业转化潜力

25个渠道
一键对比试用API 限时免费

#AI深度推理大模型API

对比大模型API的逻辑推理准确性、分析深度、可视化建议合理性

10个渠道
一键对比试用API 限时免费