zoukankan      html  css  js  c++  java
  • 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、在添加控制器及视图。

  • 相关阅读:
    如何辨别护照的种类
    C#枚举中使用Flags特性
    那些年,我们一起学WCF--(7)PerSession实例行为
    64位系统使用Access 数据库文件的彻底解决方法
    从Excel中导入数据时,提示“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”的解决办法
    TortoiseSVN与VisualSVN Server搭建SVN版本控制系统
    解决Winform程序在不同分辨率系统下界面混乱
    【已解决】Https请求——基础连接已经关闭 发送时发生错误
    Entity Framework Code First学习系列目录
    PowerDesigner之PDM(物理概念模型)各种属性建立如PK,AK等
  • 原文地址:https://www.cnblogs.com/chonghanyu/p/4414554.html
Copyright © 2011-2022 走看看