文章出處
文章列表
在項目開發過程中,出現了一個問題,就是新添加一個非空字段后,原來的程序邏輯需要被重新修改,即將原來的字段添加到程序里,這種作法是非常不提倡的,所以,我通過T4模版將原來的實體類小作修改,解決了這個問題,即,在實體里為非空屬性添加默認值,事實上,也就那種幾種,如string默認為string.Empty,int,short,long默認都是0,而datetime默認為當前日期,這些我們可以在T4模塊中完成
看一下代碼
public <#=code.Escape(entity)#>() { <# foreach (var edmProperty in propertiesWithDefaultValues) { #> this.<#=code.Escape(edmProperty)#> = <#=typeMapper.CreateLiteral(edmProperty.DefaultValue)#>; <# } foreach (var navigationProperty in collectionNavigationProperties) { #> this.<#=code.Escape(navigationProperty)#> = new HashSet<<#=typeMapper.GetTypeName(navigationProperty.ToEndMember.GetEntityType())#>>(); <# } foreach (var complexProperty in complexProperties) { #> this.<#=code.Escape(complexProperty)#> = new <#=typeMapper.GetTypeName(complexProperty.TypeUsage)#>(); <# } #> }
保存模版后,看一下生成的類截圖
文章列表
全站熱搜