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

有可能許多小夥伴們發現,vs2015和2012的自帶T4模板中的.tt文件改變很是之多,若是僅僅copyEF系統本身生成的模板文件,那可累了。如下是我本身整理的在2012和2015中均可以試用的代碼。this

<#@ 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";spa

這個是須要插入與當前項目對應的EF模型類的位置debug

foreach (EntityType entity in ItemCollection.GetItems<EntityType>().OrderBy(e => e.Name))
這句很明顯是取EF類中文件的語句

生成效果以下:注意原類須要添加partial標籤

相關文章
相關標籤/搜索