0

我使用.Net 4.5,實體框架5,數據庫優先。我在我的數據庫中有一個連接(多對多)表。對於這個例子,讓我們說這個表是「StudentsCourses」:將更多列添加到聯結表後更新edmx

Students 
    -PkStudentId 
    -Name 

Courses 
    -PkCourseId 
    -CourseNumber 

StudentsCourses 
    -FkStudentId 
    -FkCourseId 

這現在工作得很好。 '從數據庫生成模型'爲Course實體創建一個帶有導航屬性的Student實體。但這裏是麻煩的地方:

我需要添加另一列到StudentsCourses表。讓我們把這個專欄叫做「CourseYear」。因此,我們的結臺現在看起來是這樣的:

StudentsCourses 
    -FkStudentId 
    -FkCourseId 
    -CourseYear 

所以,我已經添加了此列的數據庫,並跑了「從數據庫更新模式」的EDMX。我期望看到一個爲StudentCourses創建的實體,它具有對學生和課程的導航屬性。但是沒有創建這樣的實體。我仍然可以看到與以前相同的導航屬性的兩個表(學生&課程)。

我做了大量的閱讀和研究,但沒有真正遇到明確的答案。關於代碼優先的信息有很多,我不能將其應用於我的場景。有什麼方法可以讓我得到什麼?是否像添加一個PkId到StudentCourses表一樣簡單? SQL複製阻止我這樣做。我認爲複合材料應該足夠了,但是EF可能需要PK才能做到這一點?我讀了一些關於手動設置關係的內容,但找不到任何與我的具體情況對應的內容。這可能是因爲我錯過了從數據庫更新edmx的過程中的一個簡單步驟。當我添加新表格,添加列,刪除列等時,我已經做了很多次了。我和往常一樣遵循相同的步驟,但也許我需要在這種情況下做一些不同的事情?

提前感謝您的幫助。非常感謝。請讓我知道是否有更多的信息會有所幫助。

回答

0

從我收集的信息看來,EF不會爲沒有主鍵的表生成模型。