代码生成器能使从一些重复的工作中缓解下来
在最近开发MVC项目中使用到了MetaModel用来设定Model的显示名称,数据限制的代码生成模板,自己第一做代码生成模板还有很多缺陷。
下面是模板代码:
<#@ template language="c#" HostSpecific="True" #> <#@ output extension= ".cs" #> <# TableHost host = (TableHost)(Host); host.Fieldlist.Sort(CodeCommon.CompareByintOrder); #> using System; using System.Text; using System.Collections.Generic; using System.Data; namespace <#= host.NameSpace #>.Model<# if( host.Folder.Length > 0) {#>.<#= host.Folder #><# } #> { public class <#= host.GetModelClass(host.TableName) #>MetaData { <# foreach (ColumnInfo c in host.Fieldlist) { #> [Display(Name = "<#= c.ColumnName #> ")] <# if( CodeCommon.DbTypeToCS(c.TypeName)=="string") {#>[StringLength(<#= CodeCommon.GetDataTypeLenVal(c.TypeName, c.Length) #>, ErrorMessage = "长度不可超过<#= CodeCommon.GetDataTypeLenVal(c.TypeName, c.Length) #>")]<# } #> <# if( CodeCommon.DbTypeToCS(c.TypeName)=="int") {#>[Range(0, 999999999, ErrorMessage = "数值超出范围")]<# } #> <# if( CodeCommon.DbTypeToCS(c.TypeName)=="DateTime") {#>[DataType(DataType.DateTime, ErrorMessage = "时间格式不正确")]<# } #> public <#= CodeCommon.DbTypeToCS(c.TypeName) #><# if( CodeCommon.DbTypeToCS(c.TypeName)!="string") {#>?<# } #> <#= c.ColumnName #> { get; set; } <# } #> } }