在C#中将MetadataType添加到派生类

Vin*_*nay 5 c#-4.0 entity-framework-4.1 asp.net-mvc-3

我有一个名为的班级

public partial class Contact
{
   public int Id { get; set; }
   public string Title { get; set; }
   public string FirstName { get; set; }
   public string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我有另一个叫做的课

public partial class Person : Contact
{
   public string Occupation { get; set; }
   public string Country { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我有第三个名为Person的类,它被声明为Partial,第四个类叫做PersonMetaData,用于声明注释

 [MetadataType(typeof(PersonMetadata))]
    public partial class Person : Contact
    {

    }

    public class PersonMetadata
    {
         [StringLength(20, ErrorMessageResourceName = "FirstNameLength",   
         ErrorMessageResourceType = typeof(BasicErrors))]
        [Required(ErrorMessageResourceName = "FirstNameRequired",  
          ErrorMessageResourceType  = typeof(BasicErrors))]
        public string FirstName { get; set; }

        [StringLength(20, ErrorMessageResourceName = "LastNameLength", 
         ErrorMessageResourceType = typeof(BasicErrors))]
        [Required(ErrorMessageResourceName = "LastNameRequired", ErrorMessageResourceType 
         = typeof(BasicErrors))]
        public string LastName { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

在我的MVC视图中,我创建了一个基于Person的强类型页面?问题是,必需和字符串长度验证不起作用.继承类并创建部分类以引用MetadataType时会发生此问题.

如果没有继承,那么MetadataType在调用Partial Class时工作正常.

将MetadataType用于派生类并使用partial的任何解决方案?

谢谢