型号1)

public class Student {

    int StudentID {get;set;}

    string FirstName {get;set;}

    string LastName {get;set;}

ICollection courses = {get; set;}

}


型号2)

public class Course{

    int CourseID {get;set;}

    string CourseName {get;set;}

    int CreditHours {get;set;}

}


型号3)

public class StudentCourse{

    int StudentCourseID {get;set;}

    int StudentID {get;set;}

    int CourseID {get;set;}

}


现在我将一堆数据添加到数据库中...

学生与课程之间的关系(一对多)就会丢失。

现在我在数据库中仅基于上述模型的三个数据表

他们之间没有任何关系。

如果创建另一个应用程序,请编写与上述模型完全匹配的3个模型,并定义之间的一对多关系

学生和课程使用流畅的API,行得通吗?那我将能够关联已经存在的数据吗?

例如,

完成上述步骤并查询了学生列表并执行了student.courses.ToList();之后;是否将具有匹配StudentID的课程作为该查询的列表返回?

最佳答案

学生与课程之间的关系(一对多)就会丢失。


该关系不起作用,因为您仅在它的Student侧设置了一个链接。您还需要为Courses上的关系添加一个端点:

public class Student {
    public virtual ICollection<Course> Courses { get; set; }
}

public class Course {
    public virtual Student Student { get; set; }
}


这应该建立一对多关系。

不过,许多学生都参加相同的课程,因此我将其设置为多对多关系:

public class Student {
    public virtual ICollection<Course> Courses { get; set; }
}

public class Course {
    public virtual ICollection<Student> Students { get; set; }
}


我相信这应该消除对StudentCourse表的需要,但是我在这一点上正在接受纠正。

现在,对于它们之间的链接(StudentCourse),您也将希望在此关系上正确构建关系:

public class StudentCourse
{
    public int Id { get; set; }
    public virtual Student Student { get; set; }
    public virtual Course Course { get; set; }
}

关于c# - Entity Framework 流利的API已存在的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45216751/

10-11 07:17
查看更多