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

答案是:能。

那么我们开始

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

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

然后下载此文件:GetSummery.ttinclude (https://pan.baidu.com/s/1Y1JrhlhjSbmUXdnHCOpvDw 提取码: p986)

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

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

 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的数据库连接,并不是你自己的连接字符串,所以不要省略)

 <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

EF生成实体自动添加数据库字段注释的更多相关文章

  1. symfony 数据库表生成实体、迁移数据库

    从数据库表生成实体 1. 由数据库生成模型: php bin/console doctrine:mapping:convert --from-database yml D:\db\ D:\test_b ...

  2. EF修改model自动更新数据库

    最近用MVC+EF学习时遇到修改model后而数据库没更新报错,就在网上找关于数据迁移自动更新数据库的,折腾了大半天终于弄了出来 第一步:在程序包管理器控制台里: Enable-Migrations ...

  3. MyBatis入门实例-包括实体类与数据库字段对应&CLOB字段处理

    1.我的开发环境是 jdk1.7+ecplise+oracle 11g 用到的jar包:mybatis-3.1.1.jar ojdbc6.jar 2.项目整体结构     3.首先配置conf.xml ...

  4. 让vim不要自动添加新的注释行

    vim里面有一个特性,如果你在一行注释后新加一行,vim会自动在下一行的开始位置添加注释符号.例如对于C/C++来说   //This is a comment line //             ...

  5. Spring 注解实体类中非数据库字段属性

    解决办法:在属性的get方法上加上一段注解标识它是临时属性,不是数据库字段就OK @Transient public List<Reverts> getChildList() { retu ...

  6. Pycharm在创建py文件时,如何自动添加文件头注释(类似于钩子特性)?

    在每次新建一个py文件的时候 1 如何自动添加/usr/bin/env python2 自动添加 coding=utf8 操作方法: File->settings->Editor-> ...

  7. vim 一键添加注释 自动添加文件头注释

    估计大家也都和我一样用过不少的编辑器,什么notepad2,emeditor,editplus,ultraedit,vs2005,sourceinsight,slickedit,emacs,vim(g ...

  8. (转)VIM 一键自动添加文件头注释

    通过修改VIM的配置文件.vimrc可以让Vim(gvim)支持自动添加作者信息,具体代码如下: "进行版权声明的设置 "添加或更新头 map <F4> :call T ...

  9. 设置Pycharm在创建py文件时自动添加文件头注释(类似于钩子特性)

    在每次新建一个py文件的时候 1 如何自动添加 #!/usr/bin/env python2 自动添加       #-*- coding: utf-8 -*- 操作方法: File -> se ...

随机推荐

  1. spring jdbc学习1

    1.queryForObject - 其中的 RowMapper 指定如何去映射结果集的行, 常用的实现类为 BeanPropertyRowMapper - 使用 SQL 中列的别名完成列名和类的属性 ...

  2. String和StringBuilder、StringBuffer的区别

    String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的. String:适用于少量的字符串操作的情况 StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情 ...

  3. JavaScript学习-1

    本章目录: --------①数据类型. --------②定义变量. --------③类型转换. --------④运算符. --------⑤比较符. --------⑥if语句. ------ ...

  4. Unity 获取指定资源目录下的所有文件

    string path="Assets";//Assets/Scenes if(Directory.Exists(path)){ var dirctory=new Director ...

  5. python装饰器补漏

    以前写过一篇装饰器文章,觉得少了点东西,今天特来补上,也就是带参数的装饰器,上篇文章写的不严谨 def logger(logs=""): def outer(f): def inn ...

  6. 记号一次更换IBM X3650M4主板后RAID无法启动的解决

    https://wenku.baidu.com/view/9d503ef367ec102de2bd89d7.html 强烈感谢上面分享文档的大侠!! 1.更换主板后,linux系统,无法加载引导.需要 ...

  7. 《DOM Scripting》学习笔记-——第三章 DOM

    <Dom Scripting>学习笔记 第三章 DOM 本章内容: 1.节点的概念. 2.四个DOM方法:getElementById, getElementsByTagName, get ...

  8. python调用webservice接口

    使用suds这个第三方模块 from suds.client import Clienturl = 'http://ip:port/?wsdl'cilent=Client(url)print cile ...

  9. oracle 新增并返回新增的主键

    oracle 的insert into 语句需要返回新增的主键的时候,可以使用一下insert 语法: insert into ims.t_bank_inquire_results (t_date,l ...

  10. 【Python深入】Python中继承object和不继承object的区别

    python中定义class的时候,有object和没有object的不同?例如: class Solution(object): class Solution(): 这俩的区别在于—————— 在p ...