Как проверить одно свойство с VAB / Entity Framework? - PullRequest
0 голосов
/ 30 октября 2011

Я использую Entity Framework и все объекты наследуются от BaseObject:

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, поэтому я могу использовать ErrorProvider в сочетании с источником привязки. Проблема с этим кодом заключается в том, что когда одно свойство недопустимо, все остальные свойства также недопустимы. Итак, мой вопрос, как я могу решить это? Я использую блок приложения проверки и не знаю, как проверить одно свойство.

1 Ответ

1 голос
/ 31 октября 2011

@ Тузо: я думаю, что это возможно при использовании метода PropertyValidationFactory.GetPropertyValidator .

...