2011-10-30 17 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控件。这个代码的问题是,当一个属性无效时,所有其他属性也是无效的。所以我的问题是,我该如何解决这个问题?我正在使用验证应用程序块,我不知道如何验证单个属性。

回答

相关问题