具有附加价值的多对多关系

时间:2015-03-10 15:12:18

标签: c# .net entity-framework

学生和课程之间有很多很多关系。我希望学生能够改变队列中课程的位置,以便课程按一定顺序出现。 我无法在课程中添加职位,因为它会立即反映给所有学生。如果我向学生添加职位即。然后列出我与两个对象的松散一致性。

是否有更好的方法可以做,而不是删除然后在更改位置时添加整个队列?

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

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

2 个答案:

答案 0 :(得分:2)

我假设你有多人关系的领带表。这是存储课程订购的自然场所,因为这是收藏所在的地方。如下所示:

Create Table CourseStudentTie(
  [StudentId] int NOT NULL,
  [CourseId] int NOT NULL,
  [Order] int NOT NULL --This is where you store the order of the courses.
)

答案 1 :(得分:0)

最简单的方法是将课程存储在单独的表中的学生映射中,并将队列顺序保存在同一个表中,类似于上面建议的那样。