2011-10-30 2 views
0

がBaseObjectから継承:私はのBindingSourceとの組み合わせでErrorProviderを使用できるようにVAB/Entityフレームワークで単一のプロパティを検証する方法は?私は、Entity Frameworkの、すべてのエンティティを使用してい

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インターフェイスを実装しています。このコードの問題は、あるプロパティが無効な場合、他のすべてのプロパティも無効であることです。だから私の質問は、どのように私はこれを解決することができますですか?検証アプリケーションブロックを使用していますが、どのようにして単一のプロパティを検証できるか分かりません。

答えて

関連する問題