首页 > 编程语言 >C# Model 自定义检验

C# Model 自定义检验

时间:2023-10-08 11:24:29浏览次数:43  
标签:set 自定义 get C# EnumRecordState 为空 Model public

使Model实现IValidatableObject接口并重写Validate方法即可

 public class AuditIPKeepRecordApply_In: IValidatableObject
    {
        /// <summary>
        /// IP备案申请表主键id
        /// </summary>
        [Required(ErrorMessage = "IP备案申请表主键id不可为空")]
        public string Id { get; set; }
        
        /// <summary>
        /// 审核反馈
        /// </summary>
        public string? Feedback { get; set; }
        
        /// <summary>
        /// 状态
        /// </summary>
        [Required(ErrorMessage = "状态不可为空")]
        [EnumDataType(typeof(EnumRecordState), ErrorMessage = "状态类型错误")]
        public EnumRecordState State { get; set; }
        
        /// <summary>
        /// 有效截止日
        /// </summary>
        public DateTime? ExpirationDate { get; set; }

        public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
        {
            if (State == EnumRecordState.Pass && ExpirationDate == null)
            {
                yield return new ValidationResult(
                    "当审核状态为通过时有效截止日不可为空!",
                    new[] { "AuditIPKeepRecordApply_In" }
                );
            }
        }

标签:set,自定义,get,C#,EnumRecordState,为空,Model,public
From: https://www.cnblogs.com/fanqisoft/p/17748437.html

相关文章

  • spring学习三:IoC概述
    IOC:控制反转,它并不是一种技术而是一种设计思想,是一个重要的面向对象编程法则,能够知道我们如何设计出松耦合,更优良的程序。 Spring通过IOC容器来管理所有java对象的实例化和初始化,控制对象与对象之间的依赖关系,我们将由IOC容器管理的java对象称为SpringBean,它与使用关键字new创......
  • npm install 报 cb.apply is not a function 错误
    npminstall报cb.applyisnotafunction错误1、问题来源.当我执行npminstall命令时,出现cb.applyisnotafunction错误!.由此可知,可能是npm和node版本不匹配。解决方案更换版本.node与npm版本对应表.参考资料node版本对应的npm版本表.解决npm......
  • 在vscode中使用Git
    由于一些新同学在进实验室之前没有接触过Git,所以在此做一些简单的介绍和总结,帮助快速上手。1Git是什么在Git的官网中有这么一段话Gitisafreeandopensourcedistributedversioncontrolsystemdesignedtohandleeverythingfromsmalltoverylargeprojectswith......
  • Maven 引用CDH 5.4 的zookeeper时报错:Could not find artifact javax.jms:jms:jar:1.1
    错误:Couldnotfindartifactjavax.jms:jms:jar:1.1incloudera由于默认5.4.0的包引用了zookeeper3.3.1版本,进而引用了log4j的某个版本,导致的报错,改为如下即可: pom:使用cloudera的源:<repositories><repository><id>cloudera</id><u......
  • .Net7自定义GC垃圾回收器
    1.前言CLR和GC高度耦合,.Net7里面分离CLR和GC,则比较容易实现这件事情。本篇来看下,自定义一个GC垃圾回收器。2.概述这里首先演示下自定义GC垃圾回收后的效果。1.下载Custom.dll2.找到当前.Net目录,比如这里的7.0.10C:\ProgramFiles\dotnet\shared\Microsoft.NETCore.App\7.0.1......
  • Docker安装报错处理
    一、安装Docker报错公钥尚未安装              【解决办法】:     1、查看系统版本信息cat/etc/redhat-release                  2、从开源镜像站mirrors.163.com找到系统对应秘钥       ......
  • 论文阅读:A Lightweight Knowledge Graph Embedding Framework for Efficient Inferenc
    ABSTRACT现存的KGE方法无法适用于大规模的图(由于存储和推理效率的限制)作者提出了一种LightKG框架:自动的推断出码本codebooks和码字codewords,为每个实体生成合适的embedding。同时,框架中包含残差模块来实现码本的多样性,并且包含连续函数来近似的实现码字的选择。为更好的提升K......
  • CUDA C编程权威指南:2.1-CUDA编程模型
      本文主要通过例子介绍了CUDA异构编程模型,需要说明的是Grid、Block和Thread都是逻辑结构,不是物理结构。实现例子代码参考文献[2],只需要把相应章节对应的CMakeLists.txt文件拷贝到CMake项目根目录下面即可运行。1.Grid、Block和Thread间的关系  GPU中最重要的2种内存是全局......
  • VS下的Emmet技巧(HTML Coding 效率Kit)
    tag:技巧点VSCode的EmmetAbbreviation参考参考参考2生成4行p标签p*4   E.class E#id E[attr=foo] E{foo} E>N E+N E^N......
  • Go - Sorting Arrays or Slices
    Problem: Youwanttosortelementsinanarrayorslice.Solution: Forint,float64,andstringarraysorslicesyoucanusesort.Ints,sort.Float64s,andsort.Strings.Youcanalsouseacustomcomparatorbyusingsort.Slice.Forstructs,youcan......