【问题标题】:Entity framework core relationships - foreign key实体框架核心关系——外键
【发布时间】:2020-07-08 17:29:22
【问题描述】:

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

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

这是我的问题,这里有两个类(表)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?

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 所以如果我的属性被称为 Grade 并且外键道具被称为 StudentGradeId,那么我没有遵循约定?谢谢
    猜你喜欢
    • 2022-01-04
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-20
    • 2021-12-18
    • 1970-01-01
    相关资源
    最近更新 更多