Я пишу приложение ASP.NET MVC 2 с использованием шаблона NHibernate и репозитория. У меня есть сборка, которая содержит мою модель (бизнес-сущности), более того, в моем веб-проекте я хочу использовать плоские объекты (возможно, с дополнительными свойствами / логикой) в качестве ViewModels.
Эти виртуальные машины содержат специфичные для пользовательского интерфейса метаданные (например, DisplayAttribute, используемый методом Html.LabelFor ()).
Проблема в том, что я не знаю, как реализовать проверку, чтобы я не повторял себя на разных уровнях (в частности, правила проверки пишутся один раз в Model и распространяются во ViewModel).
Я использую DataAnnotations в моей ViewModel, но это означает, что никакие правила проверки не накладываются на саму модель. Один из подходов, который я рассматриваю, заключается в извлечении объектов ViewModel из бизнес-объектов, добавлении новых свойств / переопределении старых, сохраняя таким образом метаданные проверки между ними, однако это уродливое решение.
Я видел проект Automapper, который помогает сопоставлять свойства, но я не уверен, что он может правильно обрабатывать метаданные проверки ASP.NET MVC 2. Сложно ли использовать пользовательские рамки проверки в asp.net MVC 2?
Есть ли у вас какие-либо шаблоны, которые помогают сохранить СУХОЙ в отношении проверки?