标签:
在使用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; } }
mvc+entity framework database first,生成的model每次更新一个表会更新所有的model
标签:
原文地址:http://www.cnblogs.com/ChineseMoonGod/p/5134987.html