Подтвердить что ты не робот

Модели asp.net mvc vs модели сущности

Было бы лучше всего создать модель в вашей папке mpc-модели asp.net. Используйте эти модели с вашими представлениями и используя сервисный уровень для "адаптации" моей модели к EF-модели.

Или вы использовали другой подход. Проблема с этим подходом заключается в том, что большую часть времени моя (самодельная) модель является копией EF-модели (не сухой)

Так может кто-нибудь объяснить мне, какие модели использовать с вашим взглядом, потому что это становится очень запутанным. model/viewmodel/Entityframeworkmodel....

Решение:

Спасибо за ответы, все догадываются, что я на данный момент реорганизую некоторые вещи!

4b9b3361

Ответ 1

Правильный подход заключается в использовании другого класса для ViewModel и другого для стойкости (сущности). Обычная причина заключается в том, что вам часто нужно отправлять некоторые дополнительные данные в представление (например, данные для заполнения выпадающих списков, данные для отключения некоторых полей и т.д.), Использовать другую проверку или показывать только подмножество объекта.

Я не пурист. Если я вижу, что моя модель просмотра точно такая же, как сущность, я использую объект напрямую, но я буду реорганизовать код, когда мне понадобится дополнительная информация в представлении. Чаще всего я начинаю с сущностей, и я заканчиваю просмотр моделей из-за постепенного развития.

Ответ 2

Обычно я использую Модели для просмотра в папке "Модели" и Модели домена на уровне ORM.

Просмотр моделей (от имени) являются нормальными моделями для тех объектов, которые вам нужны только для помощи в процессе просмотра, они не имеют стойкости, и они могут содержать некоторую логику.

Если у вас возникла проблема с тем, что ваши модели доменов соответствуют вашим моделям просмотра, вам может потребоваться повторно спроектировать модели или просто использовать модели домена без посредника.

Ответ 3

Что касается меня, я предпочитаю удалять папку Models в стандартной структуре MVC и добавлять папку ViewModels, где храню все модели просмотра. Поскольку Ладислав упоминал вначале итерации, что эти модели просмотра могут быть точной копией объекта из вашей модели домена, но постепенно они будут расти, будет сильно отличаться.

Ответ 4

Ну, это не имеет смысла. Раньше я боролся с этим, я думаю, вам нужно иметь модель, которая не является сущностью таблицы, я назвал эту модель домена. Причина в том, что иногда, если вы используете linq2sql, вам приходится иметь дело с таблицей мостов/ссылок (которая не является реальным сущностью) и сложным вычислением, поэтому вы не можете сделать это в своей сущности таблицы, правильно? Поэтому мой подход состоит в том, чтобы иметь ViewModel ↔ Model ↔ Entity