动软Model 模板 生成可空类型字段

下载了动软代码生成器的2.78版本,连接上数据库服务器,然后右击相应的表,选择模板代码生成,然后在使用自带的model模板生成实体层类文件时,发现如果数据库中的字段可以为null的话,生成的实体类的属性和字段的类型并没有转变为可空类型,试着修改了下模板,最终达到了目的,模板如下:

 1 <#@ template language="c#" HostSpecific="True" #>
 2 <#@ output extension= ".cs" #>
 3 <#
 4     TableHost host = (TableHost)(Host);
 5     host.Fieldlist.Sort(CodeCommon.CompareByintOrder);
 6 #>
 7 using System; 
 8 using System.Text;
 9 using System.Collections.Generic; 
10 using System.Data;
11 namespace <#= host.NameSpace #>.Model<# if( host.Folder.Length > 0) {#>.<#= host.Folder #><# } #>
12 {
13     <# if( host.TableDescription.Length > 0) {#>
14      //<#= host.TableDescription #>
15     <# } #>
16     public class <#= host.GetModelClass(host.TableName) #>
17     {
18                 
19           <# foreach (ColumnInfo c in host.Fieldlist)
20         { #>/// <summary>
21         /// <#= string.IsNullOrEmpty(c.Description) ? c.ColumnName : c.Description #>
22         /// </summary>        
23         private <#= GetTypeName(c) #> _<#= c.ColumnName.ToString().ToLower() #>;
24         public <#= GetTypeName(c) #> <#= c.ColumnName #>
25         {
26             get{ return _<#= c.ColumnName.ToString().ToLower()#>; }
27             set{ _<#= c.ColumnName.ToString().ToLower() #> = value; }
28         }        
29         <# } #>
30         
31         
32    
33     }
34 }
35 
36 <#+
37             private string GetTypeName(ColumnInfo c)
38             {
39                 if(c.Nullable && (CodeCommon.DbTypeToCS(c.TypeName).ToString().ToLower())!="string") //如果字段可以为空,并且不是字符串类型 转换为可空类型
40                 {
41                    return CodeCommon.DbTypeToCS(c.TypeName)+"?";
42                 }
43                 
44                 else
45                 {
46                      return CodeCommon.DbTypeToCS(c.TypeName);
47                 }
48                 
49             }
50         
51         #>

 

posted on 2014-01-25 20:07  秋之白桦  阅读(1774)  评论(1编辑  收藏  举报

导航