EF Core CodeFirst 添加表字段表述

1、通过Fluent API 来添加描述

使用HasComment实现

 protected override void OnModelCreating(ModelBuilder modelBuilder)
 {
      modelBuilder.Entity<User>(a => a.Property("UserName").HasComment("用户姓名"));
}

2、通过实体类中的Description属性实现

实体类代码示例

using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using Cari.IBP.Platform.Utility.Models;
using Cari.Disp.Context;

namespace Cari.Disp.Entities
{
    /// <summary>
    /// 年计划
    /// </summary>
    public class YearPlan: BaseEntity
    {
        /// <summary>
        /// 年度
        /// </summary>
        [Required]
        [MaxLength(50)]
        [Description("年度")]
        public string Year { get; set; }
        /// <summary>
        /// 原煤产量计划
        /// </summary>
        [Description("原煤产量计划")]
        public decimal? CoalOutput { get; set; }
        /// <summary>
        /// 进尺计划
        /// </summary>
        [Description("进尺计划")]
        public decimal? MakeHole { get; set; }
        /// <summary>
        /// 开拓进尺计划
        /// </summary>
        [Description("开拓进尺计划")]
        public decimal? OpenMakeHole { get; set; }
        /// <summary>
        /// 准备进尺计划
        /// </summary>
        [Description("准备进尺计划")]
        public decimal? IntendMakeHole { get; set; }
        /// <summary>
        /// 准备进尺计划
        /// </summary>
        [Description("汽车销量计划")]
        public decimal? CarSales { get; set; }
        /// <summary>
        /// 铁路销量计划
        /// </summary>
        [Description("铁路销量计划")]
        public decimal? RailwaySales { get; set; }
        /// <summary>
        /// 原煤入洗量计划
        /// </summary>
        [Description("原煤入洗量计划")]
        public decimal? CoalWashing { get; set; }
        /// <summary>
        /// 洗精煤产量计划
        /// </summary>
        [Description("洗精煤产量计划")]
        public decimal? CleanCoalOutput { get; set; }
    }
}

dbcontext中,在OnModelCreating中通过获取属性实现



 protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            //modelBuilder.ApplyConfigurationsFromAssembly(Assembly.GetExecutingAssembly());
            foreach (var entityType in modelBuilder.Model.GetEntityTypes())
            {
                var type = entityType.ClrType;
                if (typeof(BaseEntity).IsAssignableFrom(type))
                {
                    //通过DescriptionAttribute创建字段注释
                    var descriptionAttrs = type.GetProperties().Where(c => c.IsDefined(typeof(DescriptionAttribute), true));
                    foreach (var attr in descriptionAttrs)
                    {
                        var descriptionAttr = attr.GetCustomAttribute<DescriptionAttribute>();
                        modelBuilder.Entity(type).Property(attr.Name).HasComment(descriptionAttr.Description);
                    }
                }
            }
            base.OnModelCreating(modelBuilder);
        }

方法2适合在数据表较多的情况下使用,且可增强代码的可读性