menu
more_vert

T4模板:MVC中用T4模板快速生成代码

作者:dayu

T4模板快速生成代码:

以快速生Dal文件为例,下面为T4模板文件的内容

<#@ template debug="false" hostspecific="true" language="C#" #>
<#@ 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);
string inputFile = @"..\\MIS.Model\\MIS.edmx";
EdmItemCollection ItemCollection = loader.CreateEdmItemCollection(inputFile);
string namespaceName = code.VsNamespaceSuggestion();
EntityFrameworkTemplateFileManager fileManager = EntityFrameworkTemplateFileManager.Create(this);
#>
using MIS.IDal;
using MIS.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MIS.Dal
{
<#foreach (EntityType entity in ItemCollection.GetItems<EntityType>().OrderBy(e => e.Name))
  {#>
    public partial class <#=entity.Name#>Dal : BaseDal<<#=entity.Name#>>, I<#=entity.Name#>Dal
    {
    }
<#}#>
}

说明:
<# C#代码#>:#号中间的内容为C#代码,正常的C#怎么写这里就怎样写。

<#=输出值#>:输出一个C#代码中能得到的值。

在这些之外的都是原样输出,包括空格。

使用时只需要把以上模板的inputFile改成自己的,其它原样输出的根据自己情况把现成的Dal文件照常复制出来就行了(没有的要以自己写一个出来用T4模板生成后删除就行了)

生成后的代码如下:

 1 using MIS.IDal;
 2 using MIS.Model;
 3 using System;
 4 using System.Collections.Generic;
 5 using System.Linq;
 6 using System.Text;
 7 using System.Threading.Tasks;
 8 
 9 namespace MIS.Dal
10 {
11     public partial class sys_ActionDal : BaseDal<sys_Action>, Isys_ActionDal
12     {
13     }
14     public partial class sys_ManagerDepartmentDal : BaseDal<sys_ManagerDepartment>, Isys_ManagerDepartmentDal
15     {
16     }
17     public partial class sys_PermissionDal : BaseDal<sys_Permission>, Isys_PermissionDal
18     {
19     }
20     public partial class sys_UserDal : BaseDal<sys_User>, Isys_UserDal
21     {
22     }
23 }

T4模板:MVC中用T4模板快速生成代码

原文地址:http://www.cnblogs.com/jonfan/p/7223283.html