EF架构为实体模型添加注释

近期做项目,用的是EF的架构,发现自动生成的实体没有注释,所以总结如下方法

1.在edmx中添加注释

1.1类注释

选中实体,打开属性,找到“文档”选项,在“摘要”位置添加类注释,如下图:

1.2属性注释

同类注释,打开属性,找到“文档”选项,在“摘要”位置添加属性注释,如下图:

2.修改tt模版

打开Model.tt文件

2.1添加类注释

找到图中的位置,对t4模板做如下修改

代码复制:

string summary=string.Empty;

foreach (var entity in typeMapper.GetItemsToGenerate<EntityType>(itemCollection))

{

fileManager.StartNewFile(entity.Name + ".cs");

BeginNamespace(code);

if(entity.Documentation !=null && entity.Documentation.Summary!=null)

summary=entity.Documentation.Summary;

else

summary=entity.Name;

#>

<#=codeStringGenerator.UsingDirectives(inHeader: false)#>

/// <summary>

/// <#=summary#>

/// </summary>

<#=codeStringGenerator.EntityClassOpening(entity)#>

2.2添加属性注释

找到图中的位置,对t4模板做如下修改:

代码复制:

foreach (var edmProperty in simpleProperties)

{

if (edmProperty.Documentation != null && edmProperty.Documentation.Summary != null)

{

summary=edmProperty.Documentation.Summary;

}

else

{

summary="";

}

#>

/// <summary>

/// <#=summary#>

/// </summary>

<#=codeStringGenerator.Property(edmProperty)#>

3.效果预览

做完以上工作,保存t4模板即可。

效果如下图所示:

补充:导航属性的注释

导航属性的修改位置如下,其他的注释类似,大家再有需要的自己添加即可:

代码复制:

<#

foreach (var navigationProperty innavigationProperties)

{

if(navigationProperty.Documentation != null &&navigationProperty.Documentation.Summary != null)

{

summary=navigationProperty.Documentation.Summary;

}

else

{

summary="";

}

#>

/// <summary>

/// <#=summary#>

/// </summary>

<#=codeStringGenerator.NavigationProperty(navigationProperty)#>

<#

时间: 2024-10-05 05:58:38

EF架构为实体模型添加注释的相关文章

EF架构~为分组添加位运算聚合方法

回到目录 我们知道在Linq里的分组groupby可以对集合中一个或者多个字段进行分组,并对其中一个属性进行聚合,而Linq为我们提供了多种聚合方法,由aver,sum,count等,而在大叔权限体系中,以上几种聚合是不够的,因为我们需要对权限字段进行按位聚合,或者说对它进行按位的或运算,这对于学过计算机基础的同学不是什么难事,按位求或,就是将数值先转为二进制,进行两个运算数进行求或,原则是:有1则1,全0才0,这是上学时老师教的,呵呵. 对于Linq的扩展方法微软开发人员都放在了System.

EF架构~为EF DbContext生成的实体添加注释(T5模板应用)

相关文章系列 第八回 EF架构~将数据库注释添加导入到模型实体类中 第二十一回  EF架构~为EF DbContext生成的实体添加注释(T4模板应用) 第二十二回EF架构~为EF DbContext生成的实体添加注释(T5模板应用) 嗨,没法说,EF4的TT模版加上注释后,升级到EF5的TT模版后,注释就不通用了,所以,还得再研究一下,然后把操作方法再分享出来,没辙的微软! T4模版可能有些凌乱,这在T5模版里有了不错的改进,但我希望解决的问题在T5里并没有得到解决,那就是TT类文件自动得到E

【菜鸟看框架】——如何给EF实体添加注释

引言 在做图书馆项目的时候我们采用了EF实体架构自动生成实体,但是遇到一个很大的问 题就是在生成的实体中没有注释,我们都知道实体没有注释是非常痛苦的一件事情对于 开发的人来说,因为我们不能很快速的了解到底我们需要对那个属性进行操作,所以我 就在研究应该如何给生成的实体添加注释,下面给大家分享一下我的经验: 第一 手动添加(无效) 当开发人员告诉我让我给实体添加注释的时候,我就什么都没有多想,开始给我生成 的实体手动添加注释,当我们把我的15个实体的每一个字段都添加了以后,发现我的一 个数据库的字

EF生成实体自动添加数据库字段注释

我们在用EF从数据库生成模型的时候,默认实体类是没有注释的,但是我们已经在数据库字段添加说明了,能不能自动把注释也拿过来? 答案是:能. 那么我们开始 首先随便开一个ASP.NET   MVC项目,我们添加ADO实体数据模型.添加完成后我们打开userinfo.cs(这里我的模型名称为userinfo)如图: 双击打开后发现现在是没有注释的. 然后下载此文件:GetSummery.ttinclude (这个文件没有放下载链接,可以去网上找找,也可以给我留言评论我来给你) 嗯,现在下载完文件后把他

[原创]EF架构随心所欲打造属于你自己的DbModel

前言 我们都知道EF可以生成Dbmodel,系统生成的Model有时候并不是我们想要的,如何我们要生成自己的Model,那么久需要我们手动的去修改T4模版,T4是对“Text Template Transformation Toolkit”(4个T)的简称.如果你对T4不怎么了解可以去看蒋金楠(Artech)文章从数据到代码——基于T4的代码生成方式. 1.0先看看我们要达到的效果图吧 2.0首先我们来修改T4模版吧 打开T4模版,找到代码 WriteHeader(codeStringGener

EF架构~基于EF数据层的实现

回到目录 之前写过关于实现一个完整的EF架构的文章,文章的阅读量也是满大的,自己很欣慰,但是,那篇文章是我2011年写的,所以,技术有些不成熟,所以今天把我的2014年写的EF底层架构公开一下,这个架构比2011年的有了很大程度的提高,主要在接口规范,查询规范上,并引入了排序功能,两步对完善了EF对数据的批量操作,可以说,这次的架构是很有看点的. 一 一个基础操作接口 /// <summary> /// 基础的数据操作规范 /// 与ORM架构无关 /// </summary> /

EF架构~过滤导航属性等,拼接SQL字符串

拼接T-SQL串,并使它具有通用性 好处:与服务器建立一次连接,给服务器发一条SQL命令,即可实现 代码如下: 1 /// <summary> 2 /// 构建Insert语句串 3 /// 主键为自增时,如果主键值为0,我们将主键插入到SQL串中 4 /// </summary> 5 /// <typeparam name="TEntity"></typeparam> 6 /// <param name="entity&

EF架构~通过EF6的DbCommand拦截器来实现数据库读写分离~终结~配置的优化和事务里读写的统一

回到目录 本讲是通过DbCommand拦截器来实现读写分离的最后一讲,对之前几篇文章做了一个优化,无论是程序可读性还是实用性上都有一个提升,在配置信息这块,去除了字符串方式的拼接,取而代之的是section数组,这样在修改配置时更加清晰了:而实用性上,彻底改变了读和写不能共用一个仓储对象的缺点,并且在一个事务里可以读写并存,并为了数据的一致性,使事务里的curd操作指向主库,这一点很重要! 前几篇文章的目录 EF架构~通过EF6的DbCommand拦截器来实现数据库读写分离~再续~添加对各只读服

ms-sql 给表列添加注释

需求: 在创建数据库是对相应的数据库.表.字段给出注释. 解决方案: 首先,要明确一点的是注释存在sysproperties表中而不是跟创建的表捆绑到一起的(我的理解). 一.使用SQL Server窗口创建表是会有注释窗口: 二.使用SQL语句的comment语句,该语句放置在create table()后面,如: comment on table table_name is 'table_mark' comment on column table_name."Column" is