热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:EF生成实体自动添加数据库字段注释

本文由编程笔记#小编为大家整理,主要介绍了EF生成实体自动添加数据库字段注释相关的知识,希望对你有一定的参考价值。我们在用EF从数据库生成模型的时候,默认实体类是没有注释的
本文由编程笔记#小编为大家整理,主要介绍了EF生成实体自动添加数据库字段注释相关的知识,希望对你有一定的参考价值。


  我们在用EF从数据库生成模型的时候,默认实体类是没有注释的,但是我们已经在数据库字段添加说明了,能不能自动把注释也拿过来?

答案是:能。

那么我们开始

  首先随便开一个ASP.NET   MVC项目,我们添加ADO实体数据模型。添加完成后我们打开userinfo.cs(这里我的模型名称为userinfo)如图:

技术图片

双击打开后发现现在是没有注释的。

然后下载此文件:GetSummery.ttinclude (这个文件没有放下载链接,可以去网上找找,也可以给我留言评论我来给你)

嗯,现在下载完文件后把他解压后copy到和Model1.edmx同一目录下,如图:

技术图片

现在,在数据库表字段添加说明或者表说明(表说明映射到EF中就是类的注释),添加表说明代码如下:


1 EXEC sys.sp_addextendedproperty @name=NMS_Description, @value=N注释的描述 ,@level0type=NSCHEMA,@level0name=Ndbo, @level1type=NTABLE,@level1name=N要注释的表名

现在我们打开GetSummery.ttinclude文件

找到 string COnnectionStringName= "MyConn"

这是数据库连接名,在这里我改为string COnnectionStringName= "ConnStr"  

然后在根目录下web.config文件节点下配置数据库连接(这个连接是GetSummery.ttinclude的数据库连接,并不是你自己的连接字符串,所以不要省略)


1 <add name="ConnStr" connectionString="server=.;uid=sa;pwd=数据库密码;database=userinfo" providerName="Syste4m.Data.SqlClient">add>

配置后,关闭GetSummery.ttinclude。

打开Model1.tt。

在Model1.tt  上方添加 <#@ include file="GetSummery.ttinclude" #>,如图:

技术图片

继续,找到<#=codeStringGenerator.EntityClassOpening(entity)#> 在它上方添加

///


/// <#= getTableSummery(code.Escape(entity)) #>
///

如图:

技术图片

继续,找到<#=codeStringGenerator.Property(edmProperty)#> 在它上方添加

///


/// <#= getColumnSummery(code.Escape(entity),code.Escape(edmProperty)) #>
///

如图:

技术图片

到此,我们ctrl+s 保存。然后打开我们的实体类 userinfo.cs  发现我们在数据库加的说明已经自动注释上去了。如图:

技术图片

如果我们在数据库更新了我们的注释说明,那么我们,在打开Moedl1.tt 文件,然后在ctrl+s保存一下类就更新了。

谢谢!好了,该睡觉了。

23:23:16







推荐阅读
author-avatar
风尚宣城_588
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有