所有文章 > API解决方案 > 深入理解 ASP.NET Core Web API:从哲学到一对多模型(Models & 1:N 关系)
深入理解 ASP.NET Core Web API:从哲学到一对多模型(Models & 1:N 关系)

深入理解 ASP.NET Core Web API:从哲学到一对多模型(Models & 1:N 关系)

引言:为何需要 API 与数据库?

API 本质上是位于数据库之上的一层安全封装,让外部只能通过受控接口访问、修改数据;而数据库就像“智能文件柜”或“高级 Excel”,支持高速检索与多表关联,才被各大企业广泛采用。


一、模型(Models)与文件柜、表格的比喻

  • 数据库:犹如大型文件柜,存储各类分门别类的文件;
  • 模型/POCO:就是文件柜中的单个抽屉(Drawer),定义了该抽屉中表单(Sheet)的格式;
  • 实体实例:则是根据模型产生的表单(数据行),最终存入数据库。

二、创建 Models 文件夹与 Stock 模型

  1. API 根目录右键新增 Models 文件夹。
  2. Models 内新建 Stock.cs,并依次添加属性:

    public class Stock
    {
       public int Id { get; set; }                    // 主键 ID
       public string Symbol { get; set; } = string.Empty;
       public string CompanyName { get; set; } = string.Empty;
       [Column(TypeName = "decimal(18,2)")]
       public decimal PurchasePrice { get; set; }     // 金额需用 decimal,保留两位小数
       public decimal LastDividend { get; set; }
       public string Industry { get; set; } = string.Empty;
       public long MarketCap { get; set; }            // 市值可能达到万亿,用 long
    }

三、为何要用主键与外键?

  • 主键(Primary Key):唯一标识父实体(Parent),如 Stock.Id
  • 外键(Foreign Key):在子实体(Child)中引用父实体主键,形成一对多(1\:N)关联。

类似“父母—子女”关系:一个 Stock 可能关联多条 Comment,却只能对应一条。


四、在 Stock 中添加导航属性(“一”端)

public class Stock
{
    // … 上述属性 …

    // 一对多:一个 Stock 可有多条评论
    public List < Comment > Comments { get; set; } = new();
}
  • Comments 作为导航属性,允许通过 .Comments 快速访问关联的所有评论。

五、创建 Comment 模型并定义外键与导航属性

Models/Comment.cs 中新增:

public class Comment
{
    public int Id { get; set; }                     // 主键
    public string Title { get; set; } = string.Empty;
    public string Content { get; set; } = string.Empty;
    public DateTime CreatedOn { get; set; }         // 创建时间

    // 外键字段:引用 Stock.Id
    public int StockId { get; set; }                // 外键【截图时间节点:4:05】
    // 导航属性:对应单个 Stock(“多”端导航到“父”实体)
    public Stock Stock { get; set; } = null!;
}

六、EF Core Convention(约定优于配置)

无需手动使用 Fluent API,EF Core 默认通过以下约定自动识别一对多关系:

  • 子实体含 父类型 + Id 的外键字段(如 StockId
  • 父实体中对应的集合导航属性(如 List < Comment > Comments

小结

  • API 让数据库以可控、安全的方式对外服务;
  • 模型(POCO)就是数据库表的代码版“蓝图”;
  • 主键/外键与导航属性组合,实现一对多关系,EF Core 可自动映射。
  • 下篇将通过 Controllers 与 DbContext 演示增删改查接口的完整实现。

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

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

我们有何不同?

API服务商零注册

多API并行试用

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

查看全部API→
🔥

热门场景实测,选对API

#AI文本生成大模型API

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

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

#AI深度推理大模型API

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

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