DatabaseFirst 生成代码备注【方式1】

版权声明:作者:石头@很想你~ https://blog.csdn.net/qq_36036735/article/details/84943091

通过tt模板(读取数据库说明)生成代码备注

1,在 public class CodeStringGenerator 类中添加如下方法:

 public string GetRemark(EdmProperty edmProperty)
{
    var tableName = edmProperty.DeclaringType.Name;
    var colName = _code.Escape(edmProperty);
    string sql = string.Format(@"SELECT  字段说明=isnull(props.[value],'')  FROM syscolumns cols  inner join sysobjects objs on cols.id= objs.id and  objs.xtype='U' and  objs.name<>'dtproperties'  left join sys.extended_properties props on cols.id=props.major_id and cols.colid=props.minor_id  where  objs.name='{0}' and cols.name='{1}'", tableName, colName);
    string sqlcon = "Data Source=127.0.0.1;User ID=sa;Password=fz123456;Initial Catalog=STHXN";
    object remark = new object();
    using (System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(sqlcon))
    {
        conn.Open();
        System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(sql, conn);
        remark = cmd.ExecuteScalar();
    }
    return remark.ToString();
}

2,找到<#=codeStringGenerator.Property(edmProperty)#> 添加如下///注释中内容:

var simpleProperties = typeMapper.GetSimpleProperties(entity);
    if (simpleProperties.Any())
    {
        foreach (var edmProperty in simpleProperties)
        {
        #>  
    /// <summary>  
    /// <#=codeStringGenerator.GetRemark(edmProperty)#>  
    /// </summary>  
    <#=codeStringGenerator.Property(edmProperty)#>  
<# 
        }
    }

3,生成->转换所有T4模板,即可在模型中查看到效果

namespace Data.Model
{
    using System;
    using System.Collections.Generic;
    
    public partial class Customers
    {
        /// <summary>  
        /// 编号  
        /// </summary>  
        public int id { get; set; }
        /// <summary>  
        /// 名字  
        /// </summary>  
        public string name { get; set; }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_36036735/article/details/84943091