下載了動軟代碼生成器的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 #>