mvc+entity framework database first,生成的model每次更新一个表会更新所有的model

在使用Entity Framework 的Database frist或model first时,直接加attribute到modle类上是太现实也不合理的,因为model类是自动生成的,重新生成后会覆盖自己的修改。一个比较合理 做法,就是用 partial class的方式来实现。

比如有一个Model类: Movie。那我们就可以添加一个局部类文件,局部类的内容如下:

using System.ComponentModel.DataAnnotations;
namespace Movies.Models
{
    [MetadataType(typeof(MovieMetadata))]
    public partial class Movie
    {
        class MovieMetadata
        {
            [Required(ErrorMessage="Titles are required")]
            public string Title { get; set; }
            [Required(ErrorMessage="The Price is required.")]
            [Range(5,100,ErrorMessage ="Movies cost between $5 and $100.")]
            public decimal Price { get; set; }
        }
    }
}

通过在这个局部类文件中添加需要的验证属性就可以了。

实例2:

 [MetadataType(typeof(FileUploaderMetadata))]//使用FileUploaderMetadata对FileUploader进行数据验证
    public partial class FileUploader : IBaseEntity
    {
      
        #region 自定义属性,即由数据实体扩展的实体
        
        #endregion

    }
    public class FileUploaderMetadata
    {
            [ScaffoldColumn(false)]
            [Display(Name = "主键", Order = 1)]
            public object Id { get; set; }

            [ScaffoldColumn(true)]
            [Display(Name = "名称", Order = 2)]
            [StringLength(200, ErrorMessage = "长度不可超过200")]
            public object Name { get; set; }

            [ScaffoldColumn(true)]
            [Display(Name = "路径", Order = 3)]
            [StringLength(200, ErrorMessage = "长度不可超过200")]
            public object Path { get; set; }
    }
原文地址:https://www.cnblogs.com/ChineseMoonGod/p/5134987.html