T4模板批量生成代码

时间:2022-03-15 08:34:07

大家通过比对下,就应该知道怎么玩.

T4代码

<#@ template debug="false" hostspecific="true" language="C#" #>  //告诉T4引擎控制块用c#编写
<#@ include file="EF.Utility.CS.ttinclude"#>                     //引入EF模板
<#@ output extension=".cs" #>                                    //生成文件的后辍名
<#
MetadataLoader loader = new MetadataLoader(this);
CodeGenerationTools code = new CodeGenerationTools(this);
string inputFile = @"..\Icdce.UserLimit.Entity\WebOA.edmx";      //Edmx的相对路径
EdmItemCollection ItemCollection = loader.CreateEdmItemCollection(inputFile);
string namespaceName = code.VsNamespaceSuggestion();             //获取当前文件的命名空间
#>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Icdce.UserLimit.Entity;
using Icdce.UserLimit.IDAL;
namespace <#=namespaceName#>
{
    <# foreach(EntityType entity in ItemCollection.GetItems<EntityType>().OrderBy(e=>e.Name)) { #>
    public partial class <#=entity.Name#>Repository : BaseRepository<<#=entity.Name#>>, I<#=entity.Name#>Repository
    {

    }
    <#}#>
}

生成后的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Icdce.UserLimit.Entity;
using Icdce.UserLimit.IDAL;
namespace Icdce.UserLimit.DAL
{
        public partial class RoleRepository : BaseRepository<Role>, IRoleRepository
        {

        }
        public partial class UserInfoRepository : BaseRepository<UserInfo>, IUserInfoRepository
        {

        }
}

T4模板批量生成代码的更多相关文章

  1. 【转】- 使用T4模板批量生成代码

    前言 之前在 “使用T4模板生成代码 - 初探” 文章简单的使用了T4模板的生成功能,但对于一个模板生成多个实例文件,如何实现这个方式呢?无意发现一个解决方案 “MultipleOutputHelpe ...

  2. T4模板批量生成代码文件

    <#@ template debug="false" hostspecific="true" language="C#" #> ...

  3. FluentData-新型轻量级ORM 利用T4模板 批量生成多文件 实体和业务逻辑 代码

    FluentData,它是一个轻量级框架,关注性能和易用性. 下载地址:FlunenData.Model 利用T4模板,[MultipleOutputHelper.ttinclude]批量生成多文件 ...

  4. JS组件系列——BootstrapTable&plus;KnockoutJS实现增删改查解决方案(四):自定义T4模板快速生成页面

    前言:上篇介绍了下ko增删改查的封装,确实节省了大量的js代码.博主是一个喜欢偷懒的人,总觉得这些基础的增删改查效果能不能通过一个什么工具直接生成页面效果,啥代码都不用写了,那该多爽.于是研究了下T4 ...

  5. 让T4脱离VS生成代码

    让T4脱离VS生成代码 最近项目快结束:空闲时间相对多一点:为了以后工作方便点:索性研究了VS的T4: 写个代码生成器:以后可以通过代码生成器调用项目里面的Dll直接生成代码或者xml: 应用以下两个 ...

  6. 黄聪:如何使用CodeSmith批量生成代码&lpar;转:http&colon;&sol;&sol;www&period;cnblogs&period;com&sol;huangcong&sol;archive&sol;2010&sol;06&sol;14&sol;1758201&period;html&rpar;

    先看看CodeSmith的工作原理: 简单的说:CodeSmith首先会去数据库获取数据库的结构,如各个表的名称,表的字段,表间的关系等等,之后再根据用户自定义好的模板文件,用数据库结构中的关键字替代 ...

  7. T4 模板自动生成带注释的实体类文件

    T4 模板自动生成带注释的实体类文件 - 只需要一个 SqlSugar.dll 生成实体就是这么简单,只要建一个T4文件和 文件夹里面放一个DLL. 使用T4模板教程 步骤1 创建T4模板 如果你没有 ...

  8. 如何使用CodeSmith批量生成代码&lpar;原创系列教程&rpar;

    在上一篇我们已经用PowerDesigner创建好了需要的测试数据库,下面就可以开始用它完成批量代码生成的工作啦. 下面我会一步步的解释如何用CodeSmith实现预期的结果的,事先声明一下,在此只做 ...

  9. &lbrack;转&rsqb;黄聪:如何使用CodeSmith批量生成代码

    本文转自:http://www.cnblogs.com/huangcong/archive/2010/06/14/1758201.html 在上一篇我们已经用PowerDesigner创建好了需要的测 ...

随机推荐

  1. Linux系统监控命令及如何定位到Java线程

    >>PID.TID的区分 uid是user id,即用户id,root用户的uid是0,0为最高权限,gid是group id,用户组id,使用 id 命令可以很简单的通过用户名查看UID ...

  2. python中的system函数与编码

    在调用os.system执行命令时,发现system不能接受unicode的命令.那么命令中却又包含以unicode表示的中文等字符怎么办? ——方法就是将unicode转化为utf8 path = ...

  3. 可输入自动匹配Select——jquery ui autocomplete

    <!doctype html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  4. java&period;sql&period;date与java&period;util&period;date区别以及数据库中插入带时分秒的时间

    java.sql.Date,java.sql.Time和java.sql.Timestamp三个都是java.util.Date的子类(包装类). java.sql.Date是java.util.Da ...

  5. (2015多校第6场)HDU5361--In Touch (Dijkstra应用)

    In Touch Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total ...

  6. 打印出所有&amp&semi;quot&semi;水仙花数

    时间限制: 1 Sec  内存限制: 128 MB 提交: 695  解决: 352 [提交][状态][讨论版] 题目描述 打印出所有"水仙花数",所谓"水仙花数&quo ...

  7. VPN连接机器不再输入密码以及Pin码方法

    连接机器不输入密码 #!/usr/bin/env expect   spawn ssh guosong@xx_ip; expect "*password*"; send  &quo ...

  8. Adobe CC 下载地址

    Adobe CC 2015下载地址 Photoshop http://trials3.adobe.com/AdobeProducts/PHSP/16/win32/Photoshop_16_LS20_w ...

  9. 自定义线程池reject策略

    import java.util.Date;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.Rej ...

  10. 配置Ubuntu16&period;04虚拟机 &lpar;用途:CTF&lowbar;pwn&rpar;

    因为学习需要16.xx的虚拟机,所以把之前18.04的Ubuntu卸掉重装了一遍Ubuntu16.04, 考虑到我有备份和重装系统的爱好,故记之,以备后用. 目录: //最后更新时间:190122·1 ...