文章出處

回到目錄

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

保存模版后,看一下生成的類截圖

回到目錄


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()