2016-02-04 36 views
0

使用Code-First,我可以使用NotMapped屬性來防止EF創建數據庫列。 有沒有辦法做相反的事情?即使用DB優先方法,我可以指示EF不要爲生成的部分類的屬性創建特定列嗎?如何防止EF生成自動屬性

編輯:EF 6.1

+0

您是如何準確執行Code First模型的?哪個版本的EF? – JotaBe

+0

我的確在使用DB-first,並希望保持EF在模型中生成一個屬性。 – nitsuka

+0

我不喜歡我的問題。你可以用不同的方式先做DB。你好嗎?這是你的EF版本?您是從數據庫創建edmx模型還是代碼優先模型? – JotaBe

回答

0

將表格導入到模型中。選擇表格,然後選擇您不想要的列,右鍵單擊它並選擇「從模型中刪除」。我認爲打Del鍵也是如此。選中一列(或導航屬性)後,「屬性」窗口也將允許您將生成的屬性的名稱更改爲與數據庫列名稱不同的內容。

+0

是的,我發佈前都嘗試過這兩件事。如果我從edmx圖中刪除了列,我得到一個編譯錯誤「在表中映射片段...中的問題...它沒有默認值,也不能爲空」,如果我更改了名稱(在這裏可以看到http:// stackoverflow.com/questions/6931014/is-it-possible-to-prevent-entityframework-4-from-overwriting-customized-properti)然後我的linq-to-sql代碼在運行時中斷。有任何想法嗎? – nitsuka

+0

繼續操作,直到出現「映射碎片」問題,然後清理解決方案並重建。看看是否有效。我偶爾得到映射片段問題而不刪除列。 –

+0

值得一試。可悲的是,它不起作用,因爲錯誤3023「映射片段」不會退出。無論如何,謝謝你。 – nitsuka