T4模板生成器案例

来源:互联网 发布:电脑扩音器软件 话筒 编辑:程序博客网 时间:2024/04/30 15:17
<#@ 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=@"..\\Model\\Model1.edmx";EdmItemCollection ItemCollection=loader.CreateEdmItemCollection(inputfile);string namespaceName=code.VsNamespaceSuggestion();EntityFrameworkTemplateFileManager fileManager=EntityFrameworkTemplateFileManager.Create(this);#>

using Model;using IDAL;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DAL{<#// Emit Entity Typesforeach (EntityType entity in ItemCollection.GetItems<EntityType>().OrderBy(e => e.Name)){    //fileManager.StartNewFile(entity.Name + "RepositoryExt.cs");    //BeginNamespace(namespaceName, code);    #>public partial class <#=entity.Name#>Dal :BaseDal<<#=entity.Name#>>,I<#=entity.Name#>Dal    {    }<#}#>}



生成的代码using Model;using IDAL;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DAL{public partial class ActionInfoDal :BaseDal<ActionInfo>,IActionInfoDal    {    }public partial class DepartmentDal :BaseDal<Department>,IDepartmentDal    {    }public partial class FileInfoDal :BaseDal<FileInfo>,IFileInfoDal    {    }public partial class OrderInfoDal :BaseDal<OrderInfo>,IOrderInfoDal    {    }public partial class R_UserInfo_ActionInfoDal :BaseDal<R_UserInfo_ActionInfo>,IR_UserInfo_ActionInfoDal    {    }public partial class RoleInfoDal :BaseDal<RoleInfo>,IRoleInfoDal    {    }public partial class UserInfoDal :BaseDal<UserInfo>,IUserInfoDal    {    }public partial class WF_InstanceDal :BaseDal<WF_Instance>,IWF_InstanceDal    {    }public partial class WF_StepInfoDal :BaseDal<WF_StepInfo>,IWF_StepInfoDal    {    }public partial class WF_TempDal :BaseDal<WF_Temp>,IWF_TempDal    {    }}


0 0