2009-11-18 154 views
2

我試圖得到一個與EF映射的一對多關係,由於某種原因,它證明比平常更困難。這是我的EDMX和DB架構。我在中間表上使用自動遞增鍵的原因是因爲我被告知很難在EF上使用組合鍵。實體框架:一個<->許多<->一個映射?

我需要的是能夠做到(與課程實體)someCourse.Students或(與學生實體)someStudent.Courses。任何人都可以給我一些關於映射這個最好方法的指針嗎?

alt text http://img195.imageshack.us/img195/4053/schemacz.png alt text http://img22.imageshack.us/img22/8193/edmx.png

回答

3

如果刪除AssociationID列,使雙方的StudentID和CourseID的StudentCourses表的主鍵,它會拿起許多一對多的關係,產生更直觀的實體類(即Student.Courses,Course.Students)

+0

謝謝,完美的作品。 雖然存在一個問題,但我在從課程中刪除學生時遇到問題,反之亦然。我可以從實體中獲取數據沒有問題,但是當我來保存更改時,沒有任何內容會持續存在。例如: var requestedCourse = context.Courses.Where(c => c.CourseID == CourseId).FirstOrDefault(); System.Diagnostics.Debug.WriteLine(student.Courses.Count); // 0 student.Courses.Remove(requestedCourse); System.Diagnostics.Debug.WriteLine(student.Courses.Count); // still 0 – Echilon 2009-11-18 17:29:59

+0

我們需要一個包含(「課程」)才能刪除課程。 – Echilon 2009-11-18 18:19:49

相關問題