近期做项目,用的是EF的架构,发现自动生成的实体没有注释,所以总结如下方法
1.在edmx中添加注释
1.1类注释
选中实体,打开属性,找到“文档”选项,在“摘要”位置添加类注释,如下图:
1.2属性注释
同类注释,打开属性,找到“文档”选项,在“摘要”位置添加属性注释,如下图:
2.修改tt模版
打开Model.tt文件
2.1添加类注释
找到图中的位置,对t4模板做如下修改
代码复制:
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)#>
2.2添加属性注释
找到图中的位置,对t4模板做如下修改:
代码复制:
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)#>
3.效果预览
做完以上工作,保存t4模板即可。
效果如下图所示:
补充:导航属性的注释
导航属性的修改位置如下,其他的注释类似,大家再有需要的自己添加即可:
代码复制:
<#
foreach (var navigationProperty innavigationProperties)
{
if(navigationProperty.Documentation != null &&navigationProperty.Documentation.Summary != null)
{
summary=navigationProperty.Documentation.Summary;
}
else
{
summary="";
}
#>
/// <summary>
/// <#=summary#>
/// </summary>
<#=codeStringGenerator.NavigationProperty(navigationProperty)#>
<#