У меня есть демо-класс "User", как следующее: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 "являются обязательными.
Некоторое время, я только хочу, чтобы обновить пользователя "WebSite", так что я, как это:
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, WebSite = «http://www.stackoverflow.com» }
Заметьте, я не указываю «LOGINNAME» и «Pwd»
Эта функция может работать нормально, но я бы не установил ValidateOnSaveEnabled в е Alse.
Есть ли какой-либо способ только проверить «WebSite», когда ValidateOnSaveEnabled является истинным? Спасибо.