T4模板使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了T4模板使用相关的知识,希望对你有一定的参考价值。

本例使用的数据库是Northwind

1.新建tt文本模板customer.tt

2. 修改customer.tt内容为

<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ output extension=".cs" #>
<#@ assembly name="System.Core.dll" #>
<#@ assembly name="System.Data.dll" #>
<#@ assembly name="System.Data.DataSetExtensions.dll" #>
<#@ assembly name="System.Xml.dll" #>
<#@ import namespace="System" #>
<#@ import namespace="System.Xml" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Data" #>
<#@ import namespace="System.Data.SqlClient" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ import namespace="System.IO" #>
<#@ include file="$(ProjectDir)DbHelper.ttinclude"  #>
//------------------------------------------------------------------------------
// <auto-generated>
//     此代码由T4模板自动生成
//       生成时间 <#=DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")#> by 懒惰的肥兔
//     对此文件的更改可能会导致不正确的行为,并且如果
//     重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------

using System;
namespace T4ConsoleApplication.Entities
{    

    public class <#=config.TableName#>
    {
        <# foreach(DbColumn column in DbHelper.GetDbColumns(config.ConnectionString, config.DbDatabase, config.TableName)){#>

        /// <summary>
        /// <#=column.Remark#>
        /// </summary>        
        public <#= column.CSharpType#><# if(column.CommonType.IsValueType && column.IsNullable){#>?<#}#> <#=column.ColumnName#> { get; set; }
        <#}#> 
      
    }
}

<#+
    public class config
    {
        //public static readonly string ConnectionString="Data Source=(local);Integrated Security=true;Initial Catalog=Northwind;";
        public static readonly string ConnectionString="Data Source=(local);Initial Catalog=Northwind;User ID=sa;[email protected];"; //要连接的数据库
        public static readonly string DbDatabase="Northwind"; //数据库名称
        public static readonly string TableName="Customers";//表名
    }
#>

 

3.CTRL+S 则会生成customer.cs 实体文件

demo下载

以上是关于T4模板使用的主要内容,如果未能解决你的问题,请参考以下文章

使用 t4 模板生成动态代码

T4 模板

使用与模板存在于同一项目中的 T4 模板中的类型

如何在 T4 模板中使用 DbContext?

我们如何让 T4 模板根据用户正在编辑的 .cs 文件生成代码?

“)预期”在 c# 中使用 t4 文本模板