【发布时间】:2019-03-04 12:17:39
【问题描述】:
如何在 EF Core 中播种多对多关系,却在这方面找不到任何东西?
这就是实体
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public virtual List<StudentGrade> StudentGrades { get; set; }
}
public class Grade
{
public int Id { get; set; }
public int Grade { get; set; }
public virtual List<StudentGrade> StudentGrades { get; set; }
}
public class StudentGrade
{
public int GradeId { get; set; }
public Grade Grade { get; set; }
public int StudentId { get; set; }
public Student Student { get; set; }
}
所以官方文档说你必须定义一个加入实体(在我的例子中是 StudentGrade),并且应该在多对多关系的实体中引用它。 Ef core documentation for many-to-many.
现在在 EF 中,您不必这样做,它会计算出这些东西,因此您只需将每个实体引用到另一个实体,而不是连接实体。
那么如何在 EF Core 中播种这种类型的关系?
谢谢
【问题讨论】:
-
播种您的学生,播种您的成绩,然后播种与这两者相关的
StudentGrade实例。不知道这里有什么困惑。 -
令人困惑的是,为什么必须有一个加入实体?为什么必须播种 3 个实体而不是 2 个实体,并将一个实体的集合用于另一个拥有的对它的引用?
-
因为这就是它在 EF Core 中的工作方式。
标签: c# entity-framework asp.net-core .net-core entity-framework-core