3

好了,我有2個實體:課程與工業EF5:未使用的和未知的列會導致問題

Course and Industry Entities

的產業實體,只是一個參考表,該表列出了可以用來標記到所有可用的工業當然,將它們分類。我提出了一個多到零或一個關係(一門課程可以選擇是否有一個行業,而一個行業可以標註很多課程)。

我知道我已經玩過圖表了,過去增加和刪除關聯。

現在這裏是奇數部分:列映射場有2個類似的欄目,IndustryId和Industry_Id

Odd Course Column Mapping

我懷疑它從過去的協會,但認爲EF會照顧那個。

這裏的問題是:

在我看來,創建的過程中,IndustryId是需要填充的財產。當我創建新課程時,我看到數據庫中的IndustryId已填充。

但是,當我通過課程(Course.Industry.Description)訪問行業屬性時,沒有填充任何內容。它似乎無法獲得工業實體。

我看到在db中填充的IndustryId,所以我試圖填充Industry_Id列。這解決了它。

奇怪的是,模型中聲明的屬性是IndustryId,所以該列填充在數據庫中。但是當我嘗試通過課程獲得行業實體時,它需要Industry_Id,我不知道它來自哪裏。

任何人有任何想法?

+0

通過使您的導航屬性變爲虛擬或使用流暢的API,通過使用'.Include()' – 2013-03-08 19:10:49

回答

2

聽起來好像在您從數據庫更新時,您將表格中的列名從Industry_Id更改爲IndustryId。下一次從數據庫更新時,EF5(不能確定這是同一列,因爲它與名稱匹配)放棄了Industry_Id的映射,並添加了一個名爲IndustryId的新列。

但是,您已經在基於Industry_Id列的EDMX文件中創建了外鍵映射 - 這就是爲什麼在加載相關記錄時需要解決問題的原因。

通常,使用Database-First時,無論何時重命名數據庫中的列,都需要更新EF5模型並更新/更正任何此類差異。

相關問題