我想定义关系,其中学生只能有一个最爱课程。我希望它看起来像这样的DB:实体框架:无法定义1:1关系
STUDENT
ID
Name
FavoriteCourseID
COURSE
ID
Name
如何与实体框架实现这一目标?我宁愿仅仅通过属性来指定它。我想:
public class Student
{
public int ID { get; set; }
public string Name { get; set; }
public Course FavoriteCourse { get; set; }
public int? FavoriteCourseID { get; set; }
}
public class Class
{
public int ID { get; set; }
public string Name { get; set; }
}
这给了我这个DB模式:
STUDENT
ID
Name
FavoriteCourseID
COURSE
ID
Name
StudentID // how to remove this?
注意,它可能会出现几个同学有相同的最喜欢的课,因此,这是不能接受的解决方案。
另一个问题:这是什么类型的关系? (1:1/1:N?)
首先 - 目前还不清楚为什么你需要和身份证如果你有课程。第二 - 一个学生只能有0或1个班级,一个班级可以由任意数量的学生选择 - 因此它应该是0..1到0..N这里 –
这是一对多的。而且我没有在你的模型的'Course'表中得到'StudentID'(假设'Class'是'Course'),所以显然这个张贴的模型是不完整的。 –
@IvanStoev是的,我发布的模型是不完整的。实体之间也有多对多的关系。我认为问题与'FavoriteCourse'关系的定义有关。但事实证明,问题是,该实体框架没有[正确识别关系](http://stackoverflow.com/questions/8228948/using-both-many-to-many-and-one-to-许多到相同的实体)。 – chriemmy