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;Password=lz@2328725;"; //要连接的数据库 public static readonly string DbDatabase="Northwind"; //数据库名称 public static readonly string TableName="Customers";//表名 } #>
3.CTRL+S 则会生成customer.cs 实体文件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通