2013年9月4日

如何加入新的程式碼產生項目給 ADO.NET 實體資料模型設計工具使用

一般我們在使用 Entity Framework 時,Entity 的部份都會透過 ADO.NET 實體資料模型 (edmx) 來作設計, 一般也稱為 Entity Framework Designer (EF Designer),透過它會自動產生所需要的 Entity 類別。

當我們想選擇不同的程式碼產生範本時,可以透過此設計工具按右鍵有個功能:「加入程式碼產生項目…」(Code Generation Item) 來選擇你適合的範本產生 Entity 類別。

但有時這些範本可能對於我們並不合用或是想增加內容時,我們就會修改範本,然後透過 Visual Studio 「匯出範本...」的功能,或是新增 Item Project  (可能需要裝 Visual Studio SDK) 來產生範本檔,並放在正確的資料夾上,即會在新增項目的介面上,呈現出你所自訂的範本項目並可作選擇。

當你將範本放到正確的位置後,你可能會發現在 edmx 設計工具內,要選擇你自訶程式碼產生項目的範本,卻有可能仍然找不到... 我也是遇到相同的問題,找了好久,終於發現問題所在…

原來重點是在於 .vstemplate 檔的命名,我發現檔名開頭一定要是 ADONETArtifactGenerator_ 或是 DbContext_ 就一定會過,只要檔名開頭不是上述所指的字句,你 template 設定檔再怎麼設定,也不會再 EF Designer 內 Code Generation Item 的選擇畫面裡看到你自訂的範本。

例如:

DbContext_MyTemplate.vstemplate  → pass
MyTemplate.vstemplate → no pass

以上是在 EF Designer 內要加入新的程式碼產生項目時,才會遇到的問題,其它範本在「加入新的項目」裡應該是不會有這問題產生。

沒有留言:

張貼留言