【菜鸟看框架】——如何给EF实体添加注释

简介: 【菜鸟看框架】——如何给EF实体添加注释



引言


在做图书馆项目的时候我们采用了EF实体架构自动生成实体,但是遇到一个很大的问题就是在生成的实体中没有注释,我们都知道实体没有注释是非常痛苦的一件事情对于开发的人来说,因为我们不能很快速的了解到底我们需要对那个属性进行操作,所以我就在研究应该如何给生成的实体添加注释,下面给大家分享一下我的经验:


第一 手动添加(无效)


当开发人员告诉我让我给实体添加注释的时候,我就什么都没有多想,开始给我生成的实体手动添加注释,当我们把我的15个实体的每一个字段都添加了以后,发现我的一个数据库的字段的类型写错了,需要修改一下数据库,修改好数据库以后就开始从数据库生成实体模型,然后我就哭了,因为我花费了将近半个小时写的注释都没有了,这才意识到不不能通过手动添加,这样是非常徒劳的

 

第二 修改实体模型(正在用)

然后就在网上继续查找资料,最后了解到可以通过修改实体模型里面的tt模板来自动添加实体的属性,下面就给大家分享一下这个操作过程: 1、给实体模型添加摘要


20150613131109042.jpg

2、给实体中的属性添加摘要方法同上

 

3、修改t4模板,添加了类头注释双击xxx.tt文件后,找到下面代码:


20150613131821265.png


将上面的代码用下面的代码代替:

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>
<#=codeStringGenerator.EntityClassOpening(entity)#>

4、修改t4模板,添加属性的注释


20150613132145593.png

将上面的代码用下面的代码代替


      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)#>

 

 5 修改t4模板,添加导航属性


20150613132358017.png

将上面的代码用下面代码代替:

<#
        foreach (var navigationProperty innavigationProperties)
        {
                     if(navigationProperty.Documentation != null &&navigationProperty.Documentation.Summary != null)
                     {
                     summary=navigationProperty.Documentation.Summary;
                     }
                     else
                     {
                     summary="";
                     }
#>
       /// <summary>
    /// <#=summary#>
    /// </summary>
   <#=codeStringGenerator.NavigationProperty(navigationProperty)#>
<#


5、预览效果


20150613133257059.jpg


第三 将数据库中的注释直接生成实体注释(正在研究)


我们会发现虽然在第二种方法的时候,我们也已经完成了对实体的注释的添加,但是我们得首先修改实体模型的中的属性,我们可以利用和数据库的关系直接将数据库中的说明直接添加到实体中,这种方法是比较难实现的,因为开发时间的原因没有深入的研究,但是在以后的学习中一定会研究这个东西,到时候在给大家分享。


小结


我们在学习的过过程中会发现很多值得我们学习和研究的东西,每一个难题都会有解决办法的,而在查询和尝试的过程中就是我们收获知识的时刻,所以我们在学习的时候不能存有“将就”的心态,如果广大读者有更好的解决办法,欢迎留言交流。

目录
相关文章
|
6月前
VS2012找不到EF框架实体模型的解决方法
VS2012找不到EF框架实体模型的解决方法
|
5月前
|
SQL 开发框架 .NET
【Entity Framework】聊一聊EF如何使用数据库函数
【Entity Framework】聊一聊EF如何使用数据库函数
78 0
|
6月前
|
算法 Unix 程序员
【C/C++ 基本知识 注释规范】C/C++中注释方式以及规范
【C/C++ 基本知识 注释规范】C/C++中注释方式以及规范
82 0
|
编译器 程序员 C语言
C++入门(内容补充)
之前给大家更新了一系列关于C++的基础语法,那么今天小编再给大家进行部分内容的补充,然后我们马上就会进入类有关内容的介绍。
73 0
|
存储 关系型数据库 数据库连接
EF框架(一)搭建过程
EF:Entity Framework的简写,实体框架,EF是ADO.net的一组支持开发面向数据的软件应用程序的技术,是微软的一个orm框架。介绍EF框架之前,先带大家了解一下ORM。
102 0
|
SQL 数据库
【菜鸟看框架】——EF如何自动生成实体
【菜鸟看框架】——EF如何自动生成实体
335 0
【菜鸟看框架】——EF如何自动生成实体
|
存储 开发框架 关系型数据库
【菜鸟看框架】——浅谈EF框架
【菜鸟看框架】——浅谈EF框架
129 0
【菜鸟看框架】——浅谈EF框架
[.NET领域驱动设计实战系列]专题六:DDD实践案例:网上书店订单功能的实现
原文:[.NET领域驱动设计实战系列]专题六:DDD实践案例:网上书店订单功能的实现 一、引言    上一专题已经为网上书店实现了购物车的功能了,在这一专题中,将继续对网上书店案例进行完善,本专题将对网上书店订单功能的实现进行介绍,现在废话不多说了,让我们来一起看看订单功能是如何实现的吧。
1832 0