代码改变世界

Asp.net mvc + .net ef database first 或 model first 时如何添加验证特性

2013-01-08 17:02  程序开发助手  阅读(1061)  评论(2编辑  收藏  举报

今天有个同事问到,在使用Entity Framework 的Database frist或model first时,怎么在model上添加验证的特性?

 

因为此时的Model是是VS 工具怎么生成的,直接加attribute到modle类上是太现实也不合理。一个比较合理做法,就是用 buddy 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; }
        }
    }
}

 

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

 

 

参考:

http://www.asp.net/mvc/tutorials/older-versions/getting-started-with-mvc/getting-started-with-mvc-part7

http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx