1.在项目中依次点击“添加”/“新建项”,选择“文本模板”,输入名称后点击添加。
2.在Base.tt中添加如下代码。
<#@ template debug="false" hostspecific="false" language="C#" #> <#@ output extension=".cs" #> <#@ Assembly Name="System.Core" #> <#@ Assembly Name="System.Windows.Forms" #> <#@ Assembly Name="MySql.Data.dll" #> <#@ Assembly Name="System.Data" #> <#@ Assembly Name="System" #> <#@ import namespace="System" #> <#@ import namespace="System.IO" #> <#@ import namespace="System.Diagnostics" #> <#@ import namespace="System.Linq" #> <#@ import namespace="System.Collections" #> <#@ import namespace="System.Collections.Generic" #> <#@ import namespace="MySql.Data" #> <#@ import namespace="MySql.Data.MySqlClient" #> //数据库基本信息设置 <# string Server="localhost"; string UId="root"; string PWd="fxy19940923.."; string Db_Name="cxkdb"; #> //获取数据库中各表基本数据 <# string conStr="server="+Server+";database="+Db_Name+";uid="+UId+";pwd="+PWd; MySqlConnection con=new MySqlConnection(conStr); con.Open(); MySqlParameter mp=new MySqlParameter("@db_name",Db_Name); string sqlStr="select * from information_schema.COLUMNS where table_schema=@db_name "; MySqlCommand cmd=new MySqlCommand(sqlStr,con); cmd.Parameters.Add(mp); MySqlDataReader dr = cmd.ExecuteReader(); var TableList=new List<string>(); var DetailList=new List<Tuple<string,string,string>>(); var TableName=""; while(dr.Read()) { var Table=dr["TABLE_NAME"].ToString(); if(TableName==Table) { var Column=dr["COLUMN_NAME"].ToString(); var DataTypeOld=dr["DATA_TYPE"].ToString(); var DataType=DataTypeOld=="varchar"?"string": (DataTypeOld=="int"?"int": (DataTypeOld=="datetime"?"DateTime": (DataTypeOld=="decimal"?"decimal": (DataTypeOld=="char"?"string": (DataTypeOld=="bit"?"Boolean":"string"))))); DetailList.Add(Tuple.Create(Table,DataType,Column)); } else { TableList.Add(Table); } TableName=Table; } #> using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data;
3.利用1中的方法新建DataBaseEntity.tt文本模板,并添加如下代码。
<#@ template debug="false" hostspecific="false" language="C#" #> <#@ output extension=".cs" #> <#@ include file="Base.tt" #> namespace DataBaseEntity { <# foreach(var item in TableList) { #> public class <#= item #> {<# foreach(var detail in DetailList) {if( item == detail.Item1 ) { #> public <#=detail.Item2#> <#=detail.Item3#> { get; set; } <#}}#> } <# } #>}
4.将数据库的基本信息填写在Base.tt文件中,即“数据库基本设置”部分,然后依次保存Base.tt、DataBaseEntity.tt,在DataBase.tt目录下会生成对应的实体类。