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模版中为所有属性加默认值,如需转载请自行联系原博主。

目录
相关文章
|
编译器
【系统架构】架构评估的质量属性——可修改性
【系统架构】架构评估的质量属性——可修改性
375 1
【系统架构】架构评估的质量属性——可靠性
【系统架构】架构评估的质量属性——可靠性
200 0
|
运维 前端开发
陪你一起攻破前端,未来打造运维领域B/S架构产品。带你复习巩固HTML常用的元素和属性,看这篇就够了。
陪你一起攻破前端,未来打造运维领域B/S架构产品。带你复习巩固HTML常用的元素和属性,看这篇就够了。
122 0
|
存储 监控 安全
软件架构的10个质量属性
软件架构的10个质量属性
463 0
|
分布式数据库
Mycat分布式数据库架构解决方案--配置defaultAccount属性报错解决方案
Mycat分布式数据库架构解决方案--配置defaultAccount属性报错解决方案
173 0
Mycat分布式数据库架构解决方案--配置defaultAccount属性报错解决方案
论述系统架构中软件质量属性
ISO25010质量模型中8各方面的质量属性理解
488 0
|
Android开发
【Android 逆向】函数拦截 ( 修改内存页属性 | x86 架构插桩拦截 )
【Android 逆向】函数拦截 ( 修改内存页属性 | x86 架构插桩拦截 )
172 0
|
SQL 机器学习/深度学习 Cloud Native
.NET 云原生架构师训练营(模块二 基础巩固 EF Core 更新和迁移)--学习笔记
- 状态 - 自动变更检测 - 不查询删除和更新 - 并发
259 0
.NET 云原生架构师训练营(模块二 基础巩固 EF Core 更新和迁移)--学习笔记
|
SQL Cloud Native 架构师
.NET 云原生架构师训练营(模块二 基础巩固 EF Core 查询)--学习笔记
- 关联数据加载 - 客户端与服务端运算 - 跟踪与不跟踪 - 复杂查询运算 - 原生 SQL 查询 - 全局查询筛选器
255 0
.NET 云原生架构师训练营(模块二 基础巩固 EF Core 查询)--学习笔记
|
Cloud Native 架构师

热门文章

最新文章