Entity framework 核心关系 - 外键

Entity framework core relationships - foreign key

由于我刚刚开始学习 entity framework,所以我想知道如何正确地在两个 table 之间创建关系。

我会自己尝试,但我什至无法设置数据库连接:(

这是我的问题,这里有两个 类 (tables) StudentGrade:

public class Student
{
    public int Id { get; set; }
    public string Name { get; set; }

    public int GradeId { get; set; }
    public Grade Grade { get; set; }
}

public class Grade
{

    public int GradeId { get; set; }
    public string GradeName { get; set; }

}

如上例所示,我意识到将类型 Grade 添加为 属性 会创建与 table Grade 的关系, 现在很重要 但是 GradeId 呢,它不经意地持有外键值?它位于 Grade 类型之上,它的名称是 GradeId,如果我将它放在其他地方并命名为 StudentGradeId,会不会仍然是 ForeignKeyId?或者它必须是严格的(像我的例子一样包含类型 + Id):TypeNameId = GradeId?

EF 将按照惯例将导航属性与外键属性匹配。所以如果你的 Navigation 属性 被称为 Grade 而外键 属性 被称为 GradeId,它们将被自动匹配。

如果它们不遵循约定,您只需通过使用 ForeignKeyAttribute, or by using the Fluent API in OnModelCreating.

修饰属性来显式配置它们