• MVC中使用EF的技巧集(二)——分部验证


    1、从数据库生成模型后,再次更新模型时,之前设置的验证规则会丢失。

    解决方法:在Models文件夹中新建一个空白类,把它命名为shujuyanzh.cs(类名可以自定),然后把Models中自动生成的模型中的xxxx.tt文件中的与数据库中表同名的.cs中的内容复制到shujuyanzh.cs中并对相关各项添加数据规则。

    内容示例如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.ComponentModel.DataAnnotations;
    
    namespace 档案管理.Models
    {
        public class danganyz
        {
            [Required(ErrorMessage="此项必填")]
            [StringLength(10)]
            [Display(Name = "档案类型")]
            public string 档案类型 { get; set; }
    
    
            [Required(ErrorMessage="此项必填")]
            [StringLength(100)]
            [Display(Name = "档案名称")]
            public string 档案名称 { get; set; }
    
    
    
            [Required(ErrorMessage="此项必填")]
            [Range(1,500)]
            [Display(Name = "档案页数")]
            public int 档案页数 { get; set; }
    
    
            [Required(ErrorMessage="此项必填")]
            [Range(0, 50)]
            [Display(Name = "原件份数")]
            public int 原件份数 { get; set; }
    
    
    
            [Required(ErrorMessage="此项必填")]
            [Range(0, 50)]
            [Display(Name = "复印件数")]
            public int 复印件数 { get; set; }
    
    
            [Required(ErrorMessage="此项必填")]
            [StringLength(20)]
            [Display(Name = "入档人员")]
            public string 入档人员 { get; set; }
    
    
    
            [Required(ErrorMessage="此项必填")]
            [Display(Name="入档时间")]
            public System.DateTime 入档时间 { get; set; }
    
    
    
            [Required(ErrorMessage="此项必填")]
            [StringLength(10)]
            [Display(Name = "存放柜号")]
            public string 存放柜号 { get; set; }
    
    
            [Required(ErrorMessage="此项必填")]
            [StringLength(10)]
            [Display(Name = "存放盒号")]
            public string 存放盒号 { get; set; }
    
    
            [Required(ErrorMessage="此项必填")]
            [StringLength(10)]
            [Display(Name = "存放袋号")]
            public string 存放袋号 { get; set; }
    
    
            [StringLength(255)]
            [Display(Name = "档案备注")]
            public string 档案备注 { get; set; }
        }
    }

    2.然后在Models文件夹中新建一个空白类yanzhengguanli.cs(这里类名可以自定),把自动生成的类删除掉,并加入如下代码,请注意每个类被标记为partial

    using System;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;
    using System.Linq;
    using System.Web;
    
    namespace 档案管理.Models
    {
           [MetadataType(typeof(danganyz))]
            public partial class dangan { }
    }

    这样在你根据数据库更新模型的时候,就不会丢失已经设置了的验证规则,更新以后你需要对新添加的字段在shujuyanzh.cs添加验证规则。好处是显而易见的。

    3、在添加控制器及视图。

  • 相关阅读:
    JAVA中final关键字的作用
    JAVA作用域和排序算法介绍
    JAVA的控制结构
    Java概述
    P6329 【模板】点分树 | 震波[点分树]
    BZOJ #4771. 七彩树 [主席树,链并,差分]
    CF1276F Asterisk Substrings [后缀自动机]
    P4173 残缺的字符串 [FFT]
    CF528D Fuzzy Search [FFT]
    #4589. Hard Nim [FWT]
  • 原文地址:https://www.cnblogs.com/chonghanyu/p/4414554.html
Copyright © 2020-2023  润新知