我想定義關係,其中學生只能有一個最愛課程。我希望它看起來像這樣的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