由于我刚刚开始学习实体框架,所以我想知道如何在两个表之间正确创建关系。
我会自己尝试,但是我什至无法建立数据库连接:(
这是我的问题,这是Student
和Grade
的两个类(表):
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
?
答案 0 :(得分:1)
EF将按照约定将导航属性与外键属性进行匹配。因此,如果您的导航属性称为Grade,而外键属性称为GradeId,则它们将自动匹配。
如果它们不遵循约定,则只需通过用ForeignKeyAttribute装饰属性或使用OnModelCreating中的Fluent API显式配置它们即可。