2011-10-30 19 views
0

我使用實體框架,所有的實體從BaseObject繼承:如何使用VAB/Entity框架驗證單個屬性?

public class BaseObject : IDataErrorInfo 
{ 
    private string _validationMessage; 

    public BaseObject() 
    { 
     _validationMessage = string.Empty; 
    } 

    public void Validate() 
    { 
     Validator validator = ValidationFactory.CreateValidator(GetType()); 

     var validationResults = validator.Validate(this); 

     if (validationResults.Count > 0) 
     { 
      StringBuilder message = new StringBuilder(); 

      foreach (var validationResult in validationResults) 
      { 
       message.Append(validationResult.Message); 
       message.Append(Environment.NewLine); 
      } 

      _validationMessage = message.ToString(); 
      //throw new ValidationException(message.ToString()); 
     } 
    } 

    public string Error 
    { 
     get 
     { 
      _validationMessage = string.Empty; 

      this.Validate(); 

      return _validationMessage; 
     } 
    } 

    public string this[string columnName] 
    { 
     get 
     { 
      _validationMessage = string.Empty; 

      this.Validate(); 

      return _validationMessage; 
     } 
    } 
} 

BaseObjects實現IDataErrorInfo的接口,這樣我可以結合一個BindingSource的使用ErrorProvider控件。這個代碼的問題是,當一個屬性無效時,所有其他屬性也是無效的。所以我的問題是,我該如何解決這個問題?我正在使用驗證應用程序塊,我不知道如何驗證單個屬性。

回答

相關問題