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、在添加控制器及视图。