2

我遇到的問題是,使用POCO模板,僅在第一次生成POCO類時才重新運行模板,而不覆蓋它們。我知道這聽起來很蠢,原因是我實際上正在改變這些模板,並嘗試生成元數據類而不是實際的POCO類,但是這些元數據類將被手動編輯,並且我希望在未來保留這些編輯,但是仍然會重新生成一定的數量。除了文件的重新生成之外,我已經完全按照我的要求工作了。僅第一次生成EF4 POCO類

我已經看過T4,似乎有a flag to do just this(請參閱Output.PreserveExistingFile屬性),但我不明白在哪裏/如何設置此標誌。如果你能告訴我在默認的POCO模板中如何設置它,那麼我認爲這就是我真正需要的。

謝謝! :-)

回答

1

PreserveExistingFile屬性僅在T4 Toolbox中可用。 POCO模板是純T4的,有人不得不將它們轉換。任何志願者?

+0

這表明我對T4和T4工具箱的無知。 :-P所以這是一個很大的任務? – Jaxidian 2010-04-15 18:44:30

+0

這將是直截了當的。 EF模板將所有類整合到一個.tt文件中。 T4 Toolbox將它們分離爲單獨的.tt文件/模板類。如果你有興趣,請給我打電話。 – 2010-04-15 19:09:06

1

你做錯了。

所有創建的類都是partial classes。如果您希望更改模板,請創建新的部分類並將代碼放入其中。

+0

無法用元數據屬性來做到這一點。我需要向屬性本身添加屬性,並且我想添加屬性的屬性由代碼生成。但即使如此,我還是需要爲第一次通過預先生成的一定數量的數據(即,當我爲具有大約150個表的數據庫創建新的DAL時,我希望「必需的」屬性存在於NotNull列,int列的數字等)。我們將手動添加更復雜的驗證,但如果我們可以編寫簡單的代碼,將節省大量時間。爲什麼不把它放在新桌子上呢? – Jaxidian 2010-04-15 18:58:55

+0

至於實際的模型本身,我希望它始終保持與我的edmx同步,定義模型以便我總是重新生成這些模型。 – Jaxidian 2010-04-15 18:59:49