我一直在尝试通过向.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();
}
}
}
答案 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生成的那个)。