我是否需要在ASP中定义每个外键的两个字段?NET Core EF

本文关键字:两个 字段 EF Core NET 是否 ASP 定义 | 更新日期: 2023-09-27 18:12:36

假设我需要两个名为WagonsWagonTypes的表。显然,Wagons表中的每一行都应该通过外键引用相应的WagonTypes记录。

我这样做对吗?

public class Wagons
{
    public Guid Id { get; set; }
    [Required]
    public WagonTypes Type { get; set; }
}
public class WagonTypes
{
    public Guid Id { get; set; }
    [Required]
    public string Name { get; set; }
}

是的,它可以工作,但是我不明白为什么在文档中有一个额外的字段:

    public int BlogId { get; set; }
    public Blog Blog { get; set; }

BlogId字段的意义是什么?我也应该定义它吗?

我是否需要在ASP中定义每个外键的两个字段?NET Core EF

您不必添加外键,但建议这样做,因为这会使您的工作更轻松。

假设您想编辑表wagon中的某一行(例如属性Name)。你需要获取对象,编辑Name,然后加载属性Type,然后调用SaveChanges。如果你没有加载Type, EF会认为你也想编辑Type。

如果你在你的马车类中有public int TypeId{ get; set; },你可以直接得到那个对象,直接编辑Name并调用SaveChanges,而不需要任何进一步的加载。