转载地址:http://www.newlifex.com/showtopic-1072.aspx

最近新项目要用Entity Framework 6.x,但是我发现从数据库生成模型时没有生成字段的注释,在网上好是一番查找,终于找到解决方案了。分享下: 第一步,让数据库注释映射到EDMX模型上   网上找到了EFTSQLDocumentation.Generator.exe的相关方法,但按照操作后,死活没有字段说明信息,多方查证,最终发现是xmlns的命名空间不对导致的,程序中给写死了,没法用。自己就修改了下,变成可视化直接操作的windows应用程序。代码也很简单。拿来直接用就行了。(看附件)
第二步,修改DBContext的Model的T4模版
首先为类添加注释: 找到这行代码WriteHeader(codeStringGenerator, fileManager);
在下面添加我们的代码:
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>
再加上属性注释 找到这行代码  foreach (var edmProperty in simpleProperties)
在它下面加上我们的代码
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)#>
保存t4模板就可以了。 最终结果如下:

参考资料:
http://www.th7.cn/Program/net/201307/144865.shtml
http://www.cnblogs.com/rober0371/p/3179769.html
 
事实上,这TT模版加注释的原理就是通过读EDMX文件(是个XML文件)的相关注释内容来为POCO实体类加注释的,如果EDMX里没有注释,这个数据库注释也无法加上来,相关数据库与EDMX注释同步文章,可以看这篇文章EF架构~将数据库注释添加导入到模型实体类中

EF架构~为EF DbContext生成的实体添加注释(T5模板应用)(转载)的更多相关文章

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

    回到目录 相关文章系列 第八回 EF架构~将数据库注释添加导入到模型实体类中 第二十一回  EF架构~为EF DbContext生成的实体添加注释(T4模板应用) 第二十二回EF架构~为EF DbCo ...

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

    嗨,没法说,EF4的TT模版加上注释后,升级到EF5的TT模版后,注释就不通用了,所以,还得再研究一下,然后把操作方法再分享出来,没辙的微软! T4模版可能有些凌乱,这在T5模版里有了不错的改进,但我 ...

  3. 为EF DbContext生成的实体添加注释(T5模板应用)[转]

    1 先加上类注释 找到这行代码WriteHeader(codeStringGenerator, fileManager): 在它下面加上我们的代码: string summary=string.Emp ...

  4. 使用 EF Power Tool Code Frist 生成 Mysql 实体

    原文:使用 EF Power Tool Code Frist 生成 Mysql 实体 1,在要生成的项目上右键   2,   3,   4,   5,  生成后的效果     已知问题: 1,在Mys ...

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

    回到目录 之前写过关于实现一个完整的EF架构的文章,文章的阅读量也是满大的,自己很欣慰,但是,那篇文章是我2011年写的,所以,技术有些不成熟,所以今天把我的2014年写的EF底层架构公开一下,这个架 ...

  6. Eclipse自动生成作者、日期注释等功能设置(转载)

    在使用Eclipse 编写Java代码时,自动生成的注释信息都是按照预先设置好的格式生成的. 修改作者.日期注释格式:打开Windows->Preferences->Java->Co ...

  7. EF架构~在ef中支持IQueryable级别的Contains被翻译成了Exists,性能可以接受!

    回到目录 Entityframeworks很聪明 不错,非常不错!ef里的contains比linq to sql里的contains有了明显的提升,事实上,是在进行SQL语句翻译上有所提升,在lin ...

  8. EF学习笔记——生成自定义实体类

    使用EF,采用DataBase 模式,实体类都是按照数据库的定义自动生成,我们似乎无法干预.如果要生成自定义的实体类,该怎么做呢? 思路是这样的: 1.我们要自定义生成的实体类,都是分部类(parti ...

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

    回到目录 本讲是通过DbCommand拦截器来实现读写分离的最后一讲,对之前几篇文章做了一个优化,无论是程序可读性还是实用性上都有一个提升,在配置信息这块,去除了字符串方式的拼接,取而代之的是sect ...

随机推荐

  1. 锋利的jQuery-4--给事件添加命名空间

    可以把为元素绑定的多个事件用命名空间规范起来. $(function(){ $("p").bind("mouseover.plugin", function() ...

  2. memcached 缓存服务器

    Memcached 缓存服务器 Memcached 是高性能的分布式内存缓存服务器. 一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态web应用的速度.提高可扩展性. 主要特点 ...

  3. .NET中使用Memcached的相关资源整理

    Memcached官方站点:http://www.danga.com/memcached/ Memcached Win32 1.2.6下载:http://code.jellycan.com/memca ...

  4. 运用加密技术保护Java源代码/定制ClassLoader

    为什么要加密? 对于传统的C或C++之类的语言来说,要在Web上保护源代码是很容易的,只要不发布它就可以.遗憾的是,Java程序的源代码很容易被别人偷看.只要有一个反编译器,任何人都可以分析别人的代码 ...

  5. UVALive 6125 I’ve Got Your Back(gammon) 题解

    http://vjudge.net/problem/viewProblem.action?id=37481 East Central Regional Contest Problem D: I’ve ...

  6. Dean Edwards大神写的addEvent库

    直接晒代码: // written by Dean Edwards, 2005 // with input from Tino Zijdel, Matthias Miller, Diego Perin ...

  7. cocos基础教程(9)声音和音效

    使用音效引擎 我们可以使用Cocos2d-x自带的CocosDension库来使用声音引擎.CocosDesion实现了简单易用的SimpleAudioEngine类,为了使用它,我们只需引入他的头文 ...

  8. cocos2d 如何优化内存使用

    如何优化内存使用 内存优化原理 为优化应用内存使用,开发人员首先应该知道什么最耗应用内存,答案就是纹理! 纹理几乎会占据90%应用内存.所以尽量最小化应用的纹理内存使用,否则应用很有可能会因为低内存而 ...

  9. 写时复制技术(Copy-on-write)

    COW技术初窥:        在Linux程序中,fork()会产生一个和父进程完全相同的子进程,但子进程在此后多会exec系统调用,出于效率考虑,linux中引入了"写时复制" ...

  10. django 1.5+ 权限设计浅析

    权限关系图 依赖app: django.contrib.auth django.contrib.contenttype admin后台的权限控制解析 (path/to/django.contrib.a ...