2012-12-24 63 views
1

我覺得這個網站非常有趣,非常有幫助。我在asp.net mvc中編寫項目時遇到了這個疑問。我不得不從我正在使用的視圖中刪除幾列,以便將數據從數據庫拉回到我的表示層。刪除這些列後,我建立了我的項目,並沒有錯誤。當我運行它時,我的項目由於實體未被更改而錯誤地指出缺少相關列。,如果我更改我的視圖列,是否需要更新實體?

但是,我的問題是,是否有必要每次我需要更新我的實體模型?如果我在生產中部署我的項目,然後必須從視圖中刪除一列,會怎麼樣?對我來說,這將是一個棘手的任務如果我不得不更新模型,在生產環境中再次構建和部署它。有沒有一個簡單的解決方案?感謝您的幫助

+0

是的,你需要更新你的EF如果你改變你的數據庫。這與從對象中移除屬性並希望在代碼中引用該屬性沒有區別。 – Darren

+0

感謝Darren,但我記得我通過刪除某些其他程序員創建的某些列來更改視圖,並且當我啓動該網站時,它的運行沒有任何問題。所以這在我看來產生了一個疑問,那就是這個實體是否有任何方式自動考慮這個變化並將其反射回來。 – nh53019

+0

你會發現它會生成並運行正常,但是當你的代碼嘗試引用被刪除的列時它將會中斷。這是一個運行時錯誤。 更改數據庫時更新EF總是更好更安全。如果您首先執行此操作,則可以找到引用這些列的位置,因爲它不會在調試中生成。 – Darren

回答

0

您必須在每次數據庫結構更改時更新實體模型,您需要做的是將EF模型從MVC項目中分離出來,如果您不需要使用Ioc,a更簡單的方法是將EF模型放置在單獨的程序集中,當數據庫發生更改時,重新構建程序集並將其部署到服務器上,這樣就不需要重新構建整個MVC。

相關問題