当前位置: 移动技术网 > IT编程>开发语言>.net > 真实项目中VS2015中自建T4模板生成文件的使用

真实项目中VS2015中自建T4模板生成文件的使用

2018年11月14日  | 移动技术网IT编程  | 我要评论

为中华之崛起而读书的意思,监狱猫,天魔神谭好看吗

有可能许多小伙伴们发现,vs2015和2012的自带t4模板中的.tt文件改变非常之多,如果仅仅copyef系统自己生成的模板文件,那可累了。以下是我自己整理的在2012和2015中都可以试用的代码。

<#@ template language="c#" debug="false" hostspecific="true"#>
<#@ include file="ef.utility.cs.ttinclude"#><#@
 output extension=".cs"#>
 
<#

codegenerationtools code = new codegenerationtools(this);
metadataloader loader = new metadataloader(this);
coderegion region = new coderegion(this, 1);
metadatatools ef = new metadatatools(this);
//修改当前tt模板相对应的edmx模型的位置
string inputfile = @"..\\model\\datamodel.edmx";

edmitemcollection itemcollection = loader.createedmitemcollection(inputfile);
string namespacename = code.vsnamespacesuggestion();

entityframeworktemplatefilemanager filemanager = entityframeworktemplatefilemanager.create(this);

#>

using model;
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;

namespace ibll
{

   
<#
foreach (entitytype entity in itemcollection.getitems<entitytype>().orderby(e => e.name))
{    
#>    
        public partial interface i<#=entity.name#>service:ibaseservice<<#=entity.name#>>
    {
    }
<#}#>

}

注意:string inputfile = @"..\\model\\datamodel.edmx";

这个是需要插入与当前项目对应的ef模型类的位置

foreach (entitytype entity in itemcollection.getitems<entitytype>().orderby(e => e.name))
这句很明显是取ef类中文件的语句

生成效果如下:注意原类需要添加partial标签

 



如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网