我有一個演示類 「用戶」 這樣的:實體框架,如何只驗證指定屬性
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」? 謝謝。