我阅读了有关如何自定义一对多关系的Entity Framework Core文档,但我不了解此约定之间的区别。您可以在[1]中看到这些约定。
那么这些约定之间有什么区别?
[1]:https://www.entityframeworktutorial.net/efcore/one-to-many-conventions-entity-framework-core.aspx
我只尝试了约定1和2。
公约1:
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public Grade Grade { get; set; }
}
public class Grade
{
public int GradeId { get; set; }
public string GradeName { get; set; }
public string Section { get; set; }
}
公约2:
public class Student
{
public int StudentId { get; set; }
public string StudentName { get; set; }
}
public class Grade
{
public int GradeId { get; set; }
public string GradeName { get; set; }
public string Section { get; set; }
public ICollection<Student> Students { get; set; }
}
答案 0 :(得分:0)
在第一个示例中,您通过Grade
实体访问Student
属性以查看学生的成绩。在第二个示例中,您将通过Students
实体访问Grade
属性,以查看具有该年级的所有学生。实际上,您可以同时进行这两种操作,并且在每种情况下都可以使用流利的API或相关属性专门定义关系。