天天看點

EF架構~在T4模版中為所有屬性加預設值

回到目錄

在項目開發過程中,出現了一個問題,就是新添加一個非空字段後,原來的程式邏輯需要被重新修改,即将原來的字段添加到程式裡,這種作法是非常不提倡的,是以,我通過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)#>();
<#
        }
#>
    }      

儲存模版後,看一下生成的類截圖

作者:倉儲大叔,張占嶺,

榮譽:微軟MVP

QQ:853066980

支付寶掃一掃,為大叔打賞!

EF架構~在T4模版中為所有屬性加預設值