0

我必须上课:

public class Subject

{
    [Key]
    public int SubjectID { get; set; }

    public string SubjectName { get; set; }

    public virtual ICollection<Teacher> Teachers { get; set; }


}

public class Teacher

{
    [Key]
    public int TeacherID { get; set; }

    public string TeacherName { get; set; }

    public virtual ICollection<Subject> Subjects { get; set; }

}

所以我在两个表之间创建了多对多关系,EF 会自动创建联结表:

学科教师:

PK 主题ID

PK教师ID

我的问题是,我如何告诉 EF 如何链接表中的值?

例子:

主题 ID = 1;主题名 = 数学;

主题 ID = 2; SubjectName = 生物学;

教师 ID = 1; 教师姓名 = 数学教师;

教师 ID = 2; TeacherName = MathTeacher2;

教师 ID = 3; 教师姓名 = 生物教师;

如何在播种数据时在 DbInitializer 中指定我想将 Match 主题链接到数学老师?

编辑:种子方法

protected override void Seed(SchoolContext context)
    {
        GetTeachers().ForEach(t => context.Teachers.Add(t));
        GetSubjects().ForEach(s => context.Subjects.Add(s));
    }

    private static List<Subject> GetSubjects()
    {
        var subjects = new List<Subject> {
            new Subject
            {
                SubjectID = 1,
                SubjectName = "Math"
            },
            new Subject
            {
                SubjectID = 2,
                SubjectName = "Biology"
            },
            new Subject
            {
                SubjectID = 3,
                SubjectName = "English"
            },

        };

        return subjects;
    }

    private static List<Teacher> GetTeachers()
    {
        var teachers = new List<Teacher> {
            new Teacher
            {
                TeacherID = 1,
                TeacherName = "Math Teacher",
                TeacherOffice = "A007",
           },
             new Teacher
            {
                TeacherID = 2,
                TeacherName = "Math Teacher 2",
                TeacherOffice = "A008",
           },
             new Teacher
            {
                TeacherID = 3,
                TeacherName = "Biology Teacher",
                TeacherOffice = "A009",
           },

        };

        return teachers;
    }
4

0 回答 0