型号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/