2011-09-27 82 views
0

我正在使用現有的EDMX模型,我必須將新列添加到數據庫。我已經從DB更新了模型,現在我可以看到模型中的新列。但是,我必須使用新添加的列更新類並添加get;組;方法等。有沒有一種自動化的方式來通過Visual Studio更新,但仍然保留現有的代碼並添加新的屬性?這是我第一次使用EDF,很難找到我的頭。使用新的EDMX模型更新現有類

很多感謝

+0

如果你對生成的實體有額外的邏輯,你應該把它們放在一個部分類中,所以如果你必須重新生成實體,你不會失去任何東西。在數據庫中添加/刪除列時,您應該能夠從EDMX中刪除該實體,並重新對該表進行重新生成實體。 –

+0

你怎麼生成你的課程?如果您正在爲自己的POCO實體編碼,請嘗試使用T4模板生成代碼,這樣,只要您更改模型,就可以重新生成課程。就像@BalaR說的那樣,使用部分類來增加功能。 – AJC

回答

0

你使用ADO.NET的DbContext生成器,爲您創造模型類?我就是這麼做的。如果你這樣做,一般來說,如果你添加一個新的列到相應的數據庫表,這些類將會正確地重新創建。與某些生成的代碼相關的任何代碼都會放入單獨的視圖模型或其他自定義模型,這些模型在重新生成時不會被覆蓋。然後,如果數據庫發生更改,我的視圖模型只有一些次要的模塊。

+0

系統使用POCO實體。我想我將不得不使用T4模板作爲@AJC描述的重新生成。我曾嘗試使用DBContext生成器進行更新。但是,代碼生成的代碼非常自定義。因此,將邏輯分解爲部分類或模型將在解決方案中進行大量重新設計。我期待它是一個簡單的更新! – Chin

+0

@Chin:只有在有人對自動生成的代碼進行手動更改之前,它纔是簡單的。 –