型号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;}
}
Model3)
public class StudentCourse{
int StudentCourseID {get;set;}
int StudentID {get;set;}
int CourseID {get;set;}
}
现在我将一堆数据添加到数据库......
并且学生与课程(一对多)之间的关系丢失了。
现在我只有三个数据表,基于数据库中的上述模型
他们之间没有任何关系。
如果我创建另一个应用程序,请编写与上述模型完全匹配的3个模型,并定义
之间的一对多关系学生和课程使用流畅的API,这会有用吗?那我将能够将已存在的数据联系起来吗?
例如,
完成上述步骤并查询学生列表并进行student.courses.ToList();具有匹配studentID的课程是否会作为该查询的列表返回?
答案 0 :(得分:0)
并且学生与课程(一对多)之间的关系丢失了。
这种关系不起作用,因为您只在Student
方设置了一个链接。您还需要在Courses
上添加关系的端点:
public class Student {
public virtual ICollection<Course> Courses { get; set; }
}
public class Course {
public virtual Student Student { get; set; }
}
这应该建立1-many关系。
许多学生虽然参加相同的课程,所以我将其设置为许多关系:public class Student {
public virtual ICollection<Course> Courses { get; set; }
}
public class Course {
public virtual ICollection<Student> Students { get; set; }
}
我相信这应该消除对学生课程表的需要,但我在这一点上有所纠正。
现在,对于他们之间的联系(StudentCourse),你也想要在这个上正确地构建你的人际关系:
public class StudentCourse
{
public int Id { get; set; }
public virtual Student Student { get; set; }
public virtual Course Course { get; set; }
}