を指定検証するために、私は次のようなデモクラス "ユーザー" を持っている:あなたが見ることができるように」、Entity Frameworkの、どのように専用のプロパティ
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" }
お知らせ、I "LoginNameに" と "Pwdの" を指定しない
この機能は正常に動作することができますが、私はにValidateOnSaveEnabledを設定していないだろうfその他。
ValidateOnSaveEnabledがtrueの場合、「WebSite」のみを検証する方法はありますか?おかげさまで SaveChanges
で実行