MVC使用的MetaModel代码生成器模板

代码生成器能使从一些重复的工作中缓解下来

在最近开发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; }    
        
        <# } #>
   
    }
}
原文地址:https://www.cnblogs.com/philo/p/3267961.html