Проверка ASP.NET MVC 2: метадатип нельзя добавить к стандартным классам POCO CLR. Какая альтернатива? - PullRequest
0 голосов
/ 04 ноября 2010

Я использую Entity Framework и генерирую свои классы POCO через T4 - эти классы наследуются из ничего и очень просты (созданы с помощью шаблона в vs 2010)создать класс приятеля, но когда я сделал это, я больше не мог видеть свои свойства ... если я удалил атрибут!свойства появились.

Во всяком случае, в поисках глубже я нашел это утверждение от Microsoft

The associated class must be used with EDM or LINQ-to-SQL models because CLR 
types cannot mark existing properties with new attributes. If you are working with CLR
objects directly, sometimes referred to as Plain Old CLR Object (POCO) types, you can
apply the attributes directly to the model

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

Я действительно борюсь.

1 Ответ

2 голосов
/ 04 ноября 2010

В отношении SO и блогосферы MVC существует довольно твердое мнение о том, что не следует аннотировать классы business / crud / domain атрибутами. Мало того, что весь ваш стек MVC становится зависимым от классов вашего бизнеса / базы данных, вы также быстро получите несколько контекстных сценариев (одна и та же модель, разные правила проверки), которые невозможно проверить только с помощью одной модели.

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


Исходя из вашего комментария: «Аннотации данных на самой МОДЕЛИ, потому что она создана через T4, следовательно»

То, что я пытаюсь сказать, это поместить ваши аннотации данных в ваши модели просмотра, оставить ваши модели POCO в покое.

...