Я использую DataAnnotations для проверки пользовательского класса (автоматически сгенерированного LINQ to SQL) с помощью тега MetadataType в верхней части класса.Я люблю DataAnnotations, и он хорошо работает в простых, распространенных сценариях.Например,
[MetadataType(typeof(Person_Validation))]
public class Person
Но что, если вам нужно иметь два разных набора правил проверки, применяемых к классу в разных сценариях ???
Моя ситуация: некоторые поля обязательны для публикации на www-покрытие сайта, но не обязательно для внутреннего админа сайта.Но на обоих сайтах есть представление, которое «создает новый» одного и того же объекта / класса.
Здесь оно становится поверхностями АДА DataAnnotations ..
Я пробовал использовать две разные модели представления спроверка применяется к каждому из них, два класса, которые наследуются от Person с различной проверкой, применяемой к каждому из них.Но все дороги, кажется, конфликтуют с принципами DRY, и вы в конечном итоге где-то вдоль линии, полностью переопределив все свойства для базовой структуры класса.Вам не нужно делать это, когда у вас есть только одно установленное правило проверки.Так что это очень быстро становится адом и непрактичным для сложных объектов.
Возможно ли это с помощью DataAnnotations и какова лучшая архитектура DRY?