EF架构~为EF DbContext生成的实体添加注释(T5模板应用)(转载)
2014-03-11 17:24
441 查看
转载地址:http://www.newlifex.com/showtopic-1072.aspx
最近新项目要用Entity Framework 6.x,但是我发现从数据库生成模型时没有生成字段的注释,在网上好是一番查找,终于找到解决方案了。分享下: 第一步,让数据库注释映射到EDMX模型上 网上找到了EFTSQLDocumentation.Generator.exe的相关方法,但按照操作后,死活没有字段说明信息,多方查证,最终发现是xmlns的命名空间不对导致的,程序中给写死了,没法用。自己就修改了下,变成可视化直接操作的windows应用程序。代码也很简单。拿来直接用就行了。(看附件)
第二步,修改DBContext的Model的T4模版
首先为类添加注释: 找到这行代码WriteHeader(codeStringGenerator, fileManager);
在下面添加我们的代码:
再加上属性注释 找到这行代码 foreach (var edmProperty in simpleProperties)
在它下面加上我们的代码
保存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架构~将数据库注释添加导入到模型实体类中。
最近新项目要用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生成的实体添加注释(T4模板应用)
- EF架构~为EF DbContext生成的实体添加注释 【转】
- 使用T4模板为EF框架添加实体根据数据库自动生成字段注释的功能
- 使用T4模板为EF框架添加实体根据数据库自动生成字段注释的功能
- 使用T4模板为EF框架添加数据库实体注释
- 使用T4模板为EF框架添加数据库实体注释
- 使用T4模板为EF框架添加数据库实体注释
- EF架构为实体模型添加注释
- 2步解决EF生成实体类无注释问题的快捷方法,亲测成功
- EF简单实用,在MVC里面使用EF,根据空模型,添加实体,生成数据库
- 获取汇率模板自动生成注释的jsoup简单应用
- 在myeclipse10环境下,用hibernate反向生成工具生成pojo文件,并自动按照模板文件添加注释
- EF6.0实体类添加注释
- MVC实用架构设计(三)——EF-Code First(3):使用T4模板生成相似代码
- 【菜鸟看框架】——如何给EF实体添加注释