Я не знаю, почему MS учит программистов таким плохим практикам.Особенно использование аннотаций данных для сопоставления в EF 4.1 было действительно глупым дизайнерским решением (например, Linq-to-SQL использовал отдельные атрибуты, установленные для четкого разделения между сопоставлением и проверкой).
Аннотации данных используются для проверки данных изпользовательский ввод и пользовательский ввод относятся к представлению / контроллеру, где каждому представлению могут потребоваться разные правила проверки => если вы хотите использовать аннотации данных, эти правила принадлежат модели представления, а не сущности.
В простейших случаях, когда представление и сущность 1: 1, вы можете напрямую использовать аннотации данных, но это действительно для простейших приложений, и как только вы создадите такое простое приложение, вы, скорее всего, сможете напрямую использовать динамические данные ASP.NET.и позвольте каркасу создавать все страницы для вас на основе вашей модели сущностей.
Динамические данные ASP.NET также показывают, как применять аннотации данных для сгенерированных сущностей в классах друзей .