码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-11-13 15:14:37      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:ati   lan   interface   小伙伴   names   lang   ade   生成   项目   

有可能许多小伙伴们发现,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标签

技术分享图片

 



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

标签:ati   lan   interface   小伙伴   names   lang   ade   生成   项目   

原文地址:https://www.cnblogs.com/wangyinhang/p/9952163.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!