【问题标题】:Adding a custom t4 template to DDL Generation Template dropdownlist将自定义 t4 模板添加到 DDL 生成模板下拉列表
【发布时间】:2013-02-22 08:02:53
【问题描述】:

我知道我可以在文件夹中添加模板

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\DBGen

使其在 DDL 生成模板下拉列表中可见,但是我需要将模板分发给我的团队成员,以便他们可以将模板添加到同一文件夹中。

我希望通过以某种方式将模板添加到 VS 2012 解决方案中并使其在同一个下拉列表中可见来实现相同的结果

您知道实现此目的的方法吗? 我正在使用 VS 2012 并使用 Model First 方法生成数据库

【问题讨论】:

    标签: entity-framework-5 t4 ef-model-first


    【解决方案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" />
    

    【讨论】:

    • Value="SSDLToSQLite3.tt" /&gt; 是项目根相关的。所以把它放在根目录或设置不同的路径,例如Value=".\Entities\SSDLToSQLite3.tt" /&gt;。顺便说一句,谢谢和 +1 :-)。
    【解决方案2】:

    我最终制作了一个自定义模板来生成 datetime2 字段。虽然我无法让模板显示在属性框中的下拉列表中,但我能够将模板添加到与我的 .edmx 相同的文件夹中,将其包含在解决方案中,然后将模板的文件名直接键入到设计器的属性字段替换默认值。在生成数据库和实体后,该值似乎被保留了,我不需要直接编辑 edmx XML,而且我的自定义模板现在在使用它的位置旁边是源代码控制的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-31
      • 2016-07-02
      • 1970-01-01
      相关资源
      最近更新 更多