2013-02-22 89 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,并且我的自定义模板现在是源代码控制权,紧挨着它的使用位置。