当前位置: 移动技术网 > IT编程>开发语言>.net > EF生成实体自动添加数据库字段注释

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

2019年04月12日  | 移动技术网IT编程  | 我要评论

时间裂缝在线观看,邓丽欣个人资料,金色的草地教学实录

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

答案是:能。

那么我们开始

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

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

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

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

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

1 exec sys.sp_addextendedproperty @name=n'ms_description', @value=n'注释的描述' ,@level0type=n'schema',@level0name=n'dbo', @level1type=n'table',@level1name=n'要注释的表名'

现在我们打开getsummery.ttinclude文件

找到 string connectionstringname = "myconn"

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

然后在根目录下web.config文件<connectionstrings>节点下配置数据库连接(这个连接是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)#> 在它上方添加

/// <summary>
/// <#= gettablesummery(code.escape(entity)) #>
/// </summary>

如图:

继续,找到<#=codestringgenerator.property(edmproperty)#> 在它上方添加

/// <summary>
/// <#= getcolumnsummery(code.escape(entity),code.escape(edmproperty)) #>
/// </summary>

如图:

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

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

谢谢!好了,该睡觉了。

23:23:16

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网