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)#>();
<#
        }
#>
    }

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

本文转自博客园张占岭(仓储大叔)的博客,原文链接:EF架构~在T4模版中为所有属性加默认值,如需转载请自行联系原博主。

目录
相关文章
|
12月前
|
编译器
【系统架构】架构评估的质量属性——可修改性
【系统架构】架构评估的质量属性——可修改性
234 1
|
12月前
【系统架构】架构评估的质量属性——可靠性
【系统架构】架构评估的质量属性——可靠性
96 0
|
运维 前端开发
陪你一起攻破前端,未来打造运维领域B/S架构产品。带你复习巩固HTML常用的元素和属性,看这篇就够了。
陪你一起攻破前端,未来打造运维领域B/S架构产品。带你复习巩固HTML常用的元素和属性,看这篇就够了。
|
存储 监控 安全
软件架构的10个质量属性
软件架构的10个质量属性
331 0
论述系统架构中软件质量属性
ISO25010质量模型中8各方面的质量属性理解
339 0
|
分布式数据库
Mycat分布式数据库架构解决方案--配置defaultAccount属性报错解决方案
Mycat分布式数据库架构解决方案--配置defaultAccount属性报错解决方案
125 0
Mycat分布式数据库架构解决方案--配置defaultAccount属性报错解决方案
|
Android开发
【Android 逆向】函数拦截 ( 修改内存页属性 | x86 架构插桩拦截 )
【Android 逆向】函数拦截 ( 修改内存页属性 | x86 架构插桩拦截 )
143 0
|
存储 JSON 搜索推荐
1万属性,100亿数据,每秒10万吞吐,架构如何设计?
有一类业务场景,没有固定的schema存储,却有着海量的数据行数,架构上如何来实现这类业务的存储与检索呢?58最核心的数据“帖子”的架构实现技术细节,今天和大家聊一聊。
1505 0
1万属性,100亿数据,每秒10万吞吐,架构如何设计?
|
缓存 运维 负载均衡
什么是架构属性
本文探讨如下几个问题: 什么是架构属性 约束和架构属性的关系 有哪些架构属性 各个架构属性涉及知识点 什么是架构属性 首先,问个很简单的问题!请看下面的Java代码: class Person { private String name; private int age; public void skill() { .
1144 0
|
JavaScript 前端开发 数据格式
【JavaScript框架封装】实现一个类似于JQuery的基础框架、事件框架、CSS框架、属性框架、内容框架、动画框架整体架构的搭建
版权声明:本文为博主原创文章,未经博主允许不得转载。更多学习资料请访问我爱科技论坛:www.52tech.tech https://blog.csdn.net/m0_37981569/article/details/81055973 ...
1011 0