保持.dbml文件中的类的验证

时间:2013-12-30 15:40:45

标签: asp.net-mvc validation asp.net-mvc-4 html

我一直在尝试通过向.dbml文件中的类添加HTML属性来验证用户输入。 (在设计师部分)。它的工作原理。但是当我更改数据库的设计并尝试刷新.dbml文件时,即使我赋予属性的类没有更改,这些行(HTML属性)也会从我的类中删除。我试图在不同的文件中添加属性,因为主类是部分的,这是不可能的。它不会让我改变属性。那我该怎么办?

[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_at_name", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
[Required(ErrorMessage = "account name is necessary")]
public string at_name
{
get
{
   return this._at_name;
}
set
{
   if ((this._at_name != value))
   {
       this.Onat_nameChanging(value);
       this.SendPropertyChanging();
       this._at_name = value;
       this.SendPropertyChanged("at_name");
       this.Onat_nameChanged();
        }
    }
}

1 个答案:

答案 0 :(得分:1)

使用数据注释可以将验证放在单独的类中,然后使用属性从部分类定义中引用该类。例如:

[MetadataType(typeof(PersonValidator))]
public class Person
{        
    public string Name { get; set; }
    public int Age { get; set; }        
}

public class PersonValidator
{
    [Required]
    public string Name { get; set; }

    [Range(0, int.MaxValue, ErrorMessage = "Invalid age")]
    public int Age { get; set; }
}

你可以将MetadataType放在你的部分类上(而不是VS生成的那个)。