T4模板_根据DB生成实体类
为了减少重复劳动,可以通过T4读取数据库表结构,生成实体类,用下面的实例测试了一下
1.首先创建一个项目,并添加文本模板:
2.添加 文本模板:
3.向T4文本模板文件添加代码:
<#@ template language="C#" debug="True" hostspecific="True" #> <#@ assembly name="System.Data" #> <#@ assembly name="System.xml" #> <#@ import namespace="System.Collections.Generic" #> <#@ import namespace="System.Data.SqlClient" #> <#@ import namespace="System.Data" #> <#@ output extension=".cs" #> using System; namespace Test.T4 { <# string connectionString="data source=(local);initial catalog=musicstore;user id=sa;password=123456;"; SqlConnection conn = new SqlConnection(connectionString); conn.Open(); DataTable schema = conn.GetSchema("TABLES"); string strSql = "select * from @tableName"; SqlCommand command = new SqlCommand(strSql,conn); SqlDataAdapter ad = new SqlDataAdapter(command); DataSet ds = new DataSet(); foreach(DataRow row in schema.Rows) { #> public class <#= row["TABLE_NAME"].ToString().Trim() #> { <# ds.Tables.Clear(); command.CommandText = strSql.Replace("@tableName",row["TABLE_NAME"].ToString()); ad.FillSchema(ds, SchemaType.Mapped, row["TABLE_NAME"].ToString()); foreach (DataColumn dc in ds.Tables[0].Columns) { #> public <#= dc.DataType.Name #> <#= dc.ColumnName #> { get; set; } <# } #> } <# } #> <# conn.Close(); #> }
DataTable schema = conn.GetSchema("TABLES");获取数据库的表名,然后通过foreach语句逐个遍历,更具表名查询字段名,生成实体类。
好了,保存一下,就可以看到DBToClass.cs文件类已经生成好了实体类了。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步