EF架构~在T4模版中为所有属性加默认值_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > EF架构~在T4模版中为所有属性加默认值

EF架构~在T4模版中为所有属性加默认值

 2014/3/27 17:05:39  张占岭  博客园  我要评论(0)
  • 摘要:回到目录在项目开发过程中,出现了一个问题,就是新添加一个非空字段后,原来的程序逻辑需要被重新修改,即将原来的字段添加到程序里,这种作法是非常不提倡的,所以,我通过T4模版将原来的实体类小作修改,解决了这个问题,即,在实体里为非空属性添加默认值,事实上,也就那种几种,如string默认为string.Empty,int,short,long默认都是0,而datetime默认为当前日期,这些我们可以在T4模块中完成看一下代码public<#=code.Escape(entity)#>(
  • 标签:默认值 架构

回到目录

在项目开发过程中,出现了一个问题,就是新添加一个非空字段后,原来的程序逻辑需要被重新修改,即将原来的字段添加到程序里,这种作法是非常不提倡的,所以,我通过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)#>();
<#
        }
#>
    }

保存模版后,看一下生成的类截图

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" alt="" />

回到目录

发表评论
用户名: 匿名