2013-02-22 94 views
5

我知道我可以在文件夾中添加模板添加自定義T4模板DDL生成模板DROPDOWNLIST

C:\ Program Files文件(x86)的\微軟的Visual Studio 11.0 \ Common7 \ IDE \擴展\微軟\實體框架工具\ DBGEN

,使其在DDL生成模板下拉列表可見,但後來我需要將模板分配給我的團隊成員,使他們能夠將模板添加到同一個文件夾。

我希望我可以通過添加模板到VS 2012的解決方案以某種方式達到同樣的效果,並使其在同一個下拉列表

可見你知道的方式來實現這一目標? 我正在使用VS 2012,並生成我使用模型第一種方法的數據庫

回答

1

我今晚玩了這個,發現它是可能的,但它是一種黑客。您必須手工編輯您的edmx文件,並確保它受版本控制,因爲您必須編輯edmx文件的設計器部分(自動生成)。首先,將t4模板複製到項目的根目錄(實際上可能必須與edmx位於同一文件夾中,不確定)。然後將t4模板添加到您的項目中。現在刪除自定義工具條目(在屬性中),以便它不嘗試並自動生成t4模板。終於在EDMX文件的正確位置添加下面的設計器屬性(我包括上下文來找到合適的地方):

<!-- EF Designer content (DO NOT EDIT MANUALLY BELOW HERE) --> 
    <edmx:Designer xmlns="http://schemas.microsoft.com/ado/2009/11/edmx"> 
     <edmx:Options> 
     <DesignerInfoPropertySet> 
      <DesignerProperty Name="DDLGenerationTemplate" Value="SSDLToSQLite3.tt" /> 
+0

'Value =「SSDLToSQLite3.tt」/>'是項目根目錄。因此,放在根目錄或設置不同的路徑,例如'Value =「。\ Entities \ SSDLToSQLite3.tt」/>'。順便說一句,感謝和+1 :-)。 – 2014-01-08 12:11:23

0

我最終作出一個自定義的模板來生成DATETIME2領域。雖然我無法讓模板顯示在屬性框中的下拉列表中,但我可以將模板添加到與.edmx相同的文件夾中,將其包含在解決方案中,然後直接將模板的文件名輸入到設計師的財產領域取代了默認值。在生成數據庫和實體後,該值似乎保留下來,我不需要直接編輯edmx XML,並且我的自定義模板現在是源代碼控制權,緊挨着它的使用位置。