Порядок валидации RIA Services - PullRequest
0 голосов
/ 07 декабря 2010

Итак, у меня есть несколько проверок в моих метаданных, например:

    internal sealed class Metadata
    {
        [Key]
        [ReadOnly(true)]
        public int Id { get; set; }

        [Required]
        public string Name { get; set; }

        [Required]
        public string CountryCode { get; set; }

        [CustomValidation(typeof(PCNValidator), "SetNumber")]
        public string Number { get; set; }
    }

У меня есть некоторый код для проверки свойства Number, как вы можете видеть здесь, но мне нужны другие обязательные свойства некоторыхиз атрибутов, чтобы стрелять в первую очередь.

Как я могу этого достичь?

Ответы [ 2 ]

0 голосов
/ 10 декабря 2010

Насколько я мог узнать, ответ на этот вопрос - НЕТ, нет способа определить порядок при проверке на уровне свойств.другие.

То, что я сделал, чтобы добиться того, чего хотел, - это добавление валидатора типа для класса.Валидаторы типов всегда запускаются после валидаторов свойств, и это именно то, что мне нужно.

вот мой код:

[MetadataType(typeof(PCN.Metadata))]
[CustomValidation(typeof(PCNValidator), "ValidateInsert")] 
public partial class PCN : IValidate
{
    internal sealed class Metadata
    {
        [Key]
        [ReadOnly(true)]
        public int Id { get; set; }

        [Required(AllowEmptyStrings=false)]
        public string Name { get; set; }

        [Required]
        public string CountryCode { get; set; }
    }
}
0 голосов
/ 09 декабря 2010

Вы можете вернуть ваш PCNValidator до тех пор, пока имя и код страны не будут заполнены.Как только это условие будет выполнено, вы можете выполнить оставшиеся проверки достоверности для номера.Не замечательное решение, но оно учитывает ваши требования заказа.

...