我有一个演示类 “用户” 这样的:实体框架,如何只验证指定属性
public partial class User {
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
[StringLength(30)]
[Required]
public string LoginName { get; set; }
[StringLength(120)]
[Required]
[DataType(DataType.Password)]
public string Pwd { get; set; }
[StringLength(50)]
public string Phone { get; set; }
[StringLength(100)]
public string WebSite { get; set; }
... ... }
正如你所看到的,“ LoginName“和”Pwd“是”必需的“。
一段时间,我只想更新用户的 “网”,所以我这样做:
public void UpdateUser(User user , params string[] properties) {
this.rep.DB.Users.Attach(user);
this.rep.DB.Configuration.ValidateOnSaveEnabled = false;
var entry = this.rep.DB.Entry(user);
foreach(var prop in properties) {
var entProp = entry.Property(prop);
//var vas = entProp.GetValidationErrors();
entProp.IsModified = true;
}
this.rep.DB.SaveChanges();
this.rep.DB.Configuration.ValidateOnSaveEnabled = true;
}
参数 “用户” 是这样的: 新用户(){ ID = 1, 网页=“http://www.stackoverflow.com” }
通知,我不指定“的LoginName”和“密码”
此功能可以正常工作,但我不会设置ValidateOnSaveEnabled到F ALSE。
当ValidateOnSaveEnabled为true时,有没有什么办法可以验证“WebSite”? 谢谢。