CodeSmith是一個非常強大的代碼生成工具,本文只介紹怎么生成.net三層中Modul實體類而不涉及CodeSmith的語法部分說明,感興趣的可以自己在網上查找寫關於CodeSmith的用法。
首先來幾張截圖:
1.打開CodeSmith Generator Studio新建一個數據庫連接本文用的MS sql數據庫作為測試
2.新建一個C#模板文件名稱自定義(本文名稱為Modul-net2.0)然后將下面的代碼copy到文件中
<%@ CodeTemplate Language="C#" TargetLanguage="C#" ResponseEncoding="UTF-8" Debug="False" Description="生成數據庫實體" %> <%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Category="屬性" Description="要生成實體的數據表" %> <%@ Property Name="NameSpace" Type="System.String" Optional="False" Default="Modul" Category="屬性" Description="實體類所在的命名空間" %> <%@ Property Name="opuser" Type="System.String" Default="wlitsoft" Optional="False" Category="屬性" Description="請輸入您的名字" %> <%@ Map Name="CSharpAlias" Src="System-CSharpAlias" Description="System to C# Type Map" %> <%@ Assembly Name="SchemaExplorer" %> <%@ Import Namespace="SchemaExplorer" %> /* *本代碼由代碼生成器自動生成,請不要更改此文件的任何代碼。 *生成時間:<%= DateTime.Now.ToLocalTime() %> *生成者:<%= opuser %> */ using System; namespace <%= this.NameSpace %> { ///<summary> ///表<%= this.SourceTable.Name %>的實體類 ///</summary> public class <%= this.SourceTable.Name %> { <%--生成私有字段.net2.0--%> <% foreach (ColumnSchema column in this.SourceTable.Columns) { %> private <%= CSharpAlias[column.SystemType.FullName] %> <%= StringUtil.ToCamelCase(column.Name) %>; <% } %> <% foreach(ColumnSchema column in this.SourceTable.Columns){%> <%--生成get set 方法--%> /// <summary> /// <%= column.Description %> /// </summary> public <%= CSharpAlias[column.SystemType.FullName] %> <%= StringUtil.ToPascalCase(column.Name) %> { get { return <%= StringUtil.ToCamelCase(column.Name) %>; } set { <%= StringUtil.ToCamelCase(column.Name) %> = value; } } <%}%> } }
3.打開CodeSmith Generator Explorer會看到如下