EF Core CodeFirst 添加表字段表述

2023-11-01

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适合在数据表较多的情况下使用,且可增强代码的可读性

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

EF Core CodeFirst 添加表字段表述 的相关文章

  • 如何将网络浏览器从 IE 更改为 Firefox

    我正在使用 System Windows Forms WebBrowser 开发 C NET 应用程序 IE 无法正常响应 所以我想更换为 Mozilla Firefox 我怎样才能做到这一点 你不能 The WebBrowser控件是 I
  • 立即检测客户端与服务器套接字的断开连接

    如何检测客户端已与服务器断开连接 我的代码中有以下代码AcceptCallBack method static Socket handler null public static void AcceptCallback IAsyncResu
  • Web.config appSettings:复杂值

    Web config 的 appSettings 部分只能存储这样的简单字符串吗
  • .NET 中的 new Date().getTime()

    基本上我想在 NET 中执行以下操作 但我不知道如何操作 var d new Date getTime milliseconds since 1970 01 01 我不太确定您是否可以在 NET 中获取 UNIX 日期 但您有 DateTi
  • .NET ServiceModel.Syndicate - 更改 RSS 源的编码

    我正在尝试解决我在以下位置生成的所有 RSS 源的错误http captainobvio us http captainobvio us在 Internet Explorer 版本 8 和 9 中产生以下错误 进给代码错误 从当前切换 编码
  • 在 .NET 4 下运行的 .NET 2 和 .NET 4 程序集有什么区别

    我维护一个 NET 2 0 库 最近它的用户开始要求 NET 4 版本 我可以在 Visual Studio 中复制现有项目 设置Target Framework to NET Framework 4 0并完成它 但是在 NET 4 下运行
  • 无法找到 .NET Core 项目

    我正在关注 c 的 brackeys 教程here https www youtube com watch v N775KsWQVkw 但在 7 55 时 我弹出一条消息 无法找到 NET Core 项目 未生成资产 我已经做了布雷基在那一
  • 在 XAML 中设置依赖项属性时,为什么会在运行时绕过 .NET 属性包装器?

    我正在阅读 Adam Nathan 的书 WPF 4 Unleashed 第 82 页有以下警告 在 XAML 中设置依赖属性时 NET 属性包装器会在运行时被绕过 虽然 XAML 编译器依赖于 编译时的属性包装器 WPF 调用底层 直接在
  • 更改实体的可访问性

    我想建立一个内部实体 我已将实体 其标量属性和导航属性更改为内部 当我尝试构建它时出现此错误 错误 6036 EntityType 文件 具有 内部 可访问性 EntitySet 文件 具有具有 公共 可访问性的 get 属性 Entity
  • 从 RichTextBox 复制文本及其格式

    如何将 RichTextBox 中的文本及其格式复制到写字板或网络浏览器 就像复制纯文本一样 您可以使用Clipboard SetText method http msdn microsoft com en us library 6eahs
  • 如何使用 .NET 捕获我的桌面视频?

    我想知道是否有任何方法可以使用 NET 捕获我的桌面的视频 截屏视频 我并不是在寻找截屏软件 而只是在寻找一种可以让我自己生成桌面视频的技术 我想过拍摄多个屏幕截图 但我不确定如何以编程方式生成带有图像序列的视频 有人有主意吗 Thanks
  • 如果我使用带有表单身份验证的 WCF,php 或 java 客户端将如何进行身份验证?

    我有一个通用的概念验证 WCF 服务 它使用表单身份验证来保护访问 当我的客户端是 NET 时 一切都很好 vb 代码如下 Dim client As SupplierServiceClient New SupplierServiceCli
  • 使用 HttpClient 从 webapi 消费 xml

    我使用 WebClient 从 Restfull 服务 net web api 获取 Xml 对象 一切都运行良好 using WebClient client new WebClient client Encoding UTF8Encod
  • .Net 6 控制台应用程序:WebApplication.CreateBuilder 与 Host.CreateDefaultBuilder

    我正在研究 NET 6 并希望构建一个简单的控制台应用程序 并进行一些依赖项注入 据我所知 为了使启动 现在只是程序 文件更具可读性 已经做了很多工作 让我有点困惑的是 所有改进似乎都是针对 API 项目中使用的 WebApplicatio
  • 在不可变类型的构造函数中生成HashCode

    我对不可变类型的 HashCode 有一些疑问 我可以在构造函数中 预 生成不可变类型的 HashCode 还是有任何理由不这样做 当调用 GetHashCode 方法时 我是否应该再次生成哈希码 这是一个示例类 public class
  • Activator.CreateInstance 缺少方法异常

    我在 C dll 中有一个类 其中包含以下类 public class RequiredTask Base BaseObject public string Name get set public string Description ge
  • .net 中的计时器合并

    Windows 7 引入了计时器合并 提高了能源效率 哪些托管 API 公开了计时器容差 似乎利用此功能的唯一方法是 p invoke设置等待定时器 http msdn microsoft com en us library windows
  • ROWNUM 的 OracleType 是什么

    我试图参数化所有现有的 sql 但以下代码给了我一个问题 command CommandText String Format SELECT FROM 0 WHERE ROWNUM lt maxRecords command CommandT
  • 编译的表达式树会泄漏吗?

    根据我的理解 JIT 代码在程序运行时永远不会从内存中释放 这是否意味着重复调用 Compile 表达式树上会泄漏内存吗 这意味着仅在静态构造函数中编译表达式树或以其他方式缓存它们 这可能不那么简单 正确的 他们可能是GCed Lambda
  • .NET 选项将视频文件流式传输为网络摄像头图像

    我有兴趣开发一个应用程序 它允许我从 xml 构建视频列表 包含视频标题 持续时间等 并将该列表作为我的网络摄像头流播放 这意味着 如果我要访问 ustream tv 或在实时通讯软件上激活我的网络摄像头 我的视频播放列表将注册为我的活动网

随机推荐

  • # C++网络请求(get,post,上传图片)与QML混合编程

    C 网络请求 get post 上传图片 与QML混合编程 文章主要分两个大模块 C 模块和qml模块 包含了Qt下网络请求QNetworkAccessManager QNetworkRequest QNetworkReply类库 以及响应
  • vue中实现锚点定位平滑滚动

    下面是简单的代码 拿来即用 html 给div盒子设定单击事件和ref名 div 点击滑动到此位置 div methods getThere 通过ref名获取元素在页面中的位置并滚动至此 this el querySelector cat
  • Unity3D中打包WEBGL后读取本地文件数据+网络请求

    PS 博主在上编文章中写道webgl读取本地文件数据以及内部网络请求 在这里详细补充一下 首先上一编博主运行html之后报的错误 提示内存不足 1 首先排查一下webgl包的大小 不能超过2G 2 F12查看具体错误 在这里博主的是 a 本
  • AWS Kubernetes Ingress nginx websocket 代理

    在需要配置WebSocket的Ingress服务上增加下面注解 metadata annotations nginx org websocket services SERVICE NAME WebSocket 测试 ws test yaml
  • JSON 按key的字符先后顺序排序

    话不多说直接上方法 var sortJson function obj callback var endValue item key keyArray keyArray2 o i len endValue keyArray keyArray
  • 一元线性回归分析的残差诊断

    1973年安斯库姆 Anscombe 构造了四组数据 用这四组数据得到的经验回归方程是相同的 都是y 3 00 0 500x 决定系数都是 r2 0 667 相关系数r 0 816 这四组数据所建的回归方程是相同的 决定系数r2 F统计量也
  • uboot中printf( )函数实现分析

    1 前言 这部分涉及uboot中串口的初始化 参考博客 uboot中串口 控制台 初始化详解 2 printf 函数实现思路分析 1 uboot中的printf 函数的用法和利用C库编写C语言程序时是一样的 本身uboot中printf 函
  • linux中的/etc/hosts.allow和/etc/hosts.deny详解

    linux中的 etc hosts allow和 etc hosts deny详解 当linux主机需要允许 禁止某些ip地址 地址段访问某些资源或服务时 etc hosts allow和 etc hosts deny就派上了用场 两个文件
  • tcp_transmit_skb的发送时机梳理

    在上文数据通过网络发送的过程中 当程序调用tcp sendmsg发送数据的时候有可能当前的数据不会马上发送出去 当前在哪些场景下会触发数据的发送呢 检查mtu 创建 一个新的路径MTU 发现段 未启用路径MTU 当前路径MTU探测段的长度不
  • Andriod期末复习总结

    一 安卓项目的目录结构 AndroidManifest xml 项目清单文件 设置应用名称 图标等属性 libs 项目依赖的外部库 src Java源文件 bin 目标文件 Java字节码 class 资源打包文件 ap 和Dalvik虚拟
  • 机器学习——SVM(支持向量机)与人脸识别

    忆如完整项目 代码详见github https github com yiru1225 转载标明出处 勿白嫖 star for projects thanks 目录 系列文章目录 一 SVM的概念与原理 1 SVM简介 2 SVM基本流程
  • JS中cookie的增删改查

    JS中对cookie进行增删改查 以下个人总结 如有错误 请指出修正 cookie简单介绍 cookie是一段有大小限制的文本信息 由于浏览器厂商不同 各个浏览器大小不一致 其伴随着用户请求和浏览器与Web服务器之间传递当用户访问站点时 W
  • 全国省市区编码表

    Excel转sql表 将Excel转换成支持导入的数据格式 本文用csv示例 使用Navicat工具导入我们的csv文件 选择对应的文件格式导入 然后执行下一步 然后就一直无限下一步 就导入成功了哦 下面附上下载链接 如果有帮到你的话请点赞
  • ./nginx: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No

    在CentOS7下配置Nginx 但是一致都在报错 报错信息为 nginx error while loading shared libraries libcrypto so 1 1 cannot open shared object fi
  • Unity3d 离散仿真引擎基础

    Unity3d 游戏 离散仿真引擎基础简答题 1 解释游戏对象 GameObjects 和资源 Assets 的区别与联系 游戏对象 GameObjects 用来表示游戏中具体的角色 道具和场景 它们通过容纳组件 Component 来实现
  • Ubuntu20.04+RTX3090+CUDA11.4+CUDNN8.5.0安装与卸载

    目录 CUDA CUDNN卸载 CUDA CUDNN下载与安装 CUDA CUDNN下载 CUDA CUDNN安装 CUDA CUDNN卸载 CUDA卸载有两种方式 一种是执行CUDA自带的卸载脚本 该脚本位于 usr local cuda
  • 网络驱动->PHY驱动调试

    1 Linux 系统网络协议层架构 网络协议框架图 网络子系统是 linux 操作系统里很重要的一部分 关于这部分有很多的参考资料 这里主要说明一下 phy 芯片在整个子系统里的位置 从这个结构里看到 PHY 驱动的功能处于链路层 以太网物
  • Python实现并发编程

    利用python实现并发编程的方法有 1 多线程 2 多进程 3 多线程 多进程 面试题 进程和线程的区别和联系 进程 操作系统分配内存的基本单位 一个进程可以包含一个或多个线程 线程 操作系统分配CPU的基本单位 并发编程 concurr
  • 我的梦想指引前行与追寻梦想之路

    在毕业季来临之际 我想向即将踏入职场的各位同学们致以真诚的祝福和鼓励 在这个毕业季的到来 让我们满怀梦想和热情 准备好迈出职场的第一步 追逐成功的道路 不断成长和拓展自己的辉煌人生 在大学期间 我有幸参与了一项关于人工智能领域的研究项目 这
  • EF Core CodeFirst 添加表字段表述

    1 通过Fluent API 来添加描述 使用HasComment实现 protected override void OnModelCreating ModelBuilder modelBuilder modelBuilder Entit