实体框架核心关系-外键

时间:2020-03-27 22:44:36

标签: c# entity-framework foreign-keys entity-relationship

由于我刚刚开始学习实体框架,所以我想知道如何在两个表之间正确创建关系。

我会自己尝试,但是我什至无法建立数据库连接:(

这是我的问题,这是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添加为属性将创建与表Grade的关系, 重要的事情,但是GradeId却明显持有外键值怎么办?它位于Grade类型上方,名称为GradeId,如果我将其放置在其他位置并命名为StudentGradeId,该怎么办仍是ForeignKeyId?还是必须严格(像我的示例一样,将类型+ Id包含在一起):TypeNameId = GradeId

1 个答案:

答案 0 :(得分:1)

EF将按照约定将导航属性与外键属性进行匹配。因此,如果您的导航属性称为Grade,而外键属性称为GradeId,则它们将自动匹配。

如果它们不遵循约定,则只需通过用ForeignKeyAttribute装饰属性或使用OnModelCreating中的Fluent API显式配置它们即可。