Как различить модель и сущность? - PullRequest
3 голосов
/ 10 марта 2020

Я уже прочитал много, но я все еще пытаюсь понять вопрос этого поста. Я создаю (учусь, как создавать) свое собственное веб-приложение, используя. Net Core Framework, а также использую архитектуру MVVM, и эти термины очень важны для меня, чтобы понять, что я делаю, а именно, Entity Framework. Если бы кто-то мог объяснить мне их с некоторыми примерами, это было бы прекрасно. Заранее спасибо, ребята.

Ответы [ 3 ]

3 голосов
/ 11 марта 2020

В MVVM у вас есть 3 компонента:

  • модель
  • представление (говорит само за себя)
  • модель представления

В структуре сущностей у вас есть:

  • сущности

Так как это связано?

Сущность

В общем, это «вещь», которая имеет право на существование. В контексте EF это часто называют таблицей.

ViewModel

Это модель, созданная специально для вид. В идеале он содержит набор свойств и несколько команд. Через связывание вы можете обновить свой вид, установив свойства. Например, текст метки.

Модель

Теперь начинается самое интересное; Модель - это объект, возможно содержащий данные и некоторые бизнес-логики c.

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

Википедия излагает это прекрасно:

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

Таким образом, сущность может быть вашей моделью, но в более крупных приложениях часто существует промежуточный слой для отделения "делового" языка от языка уровня данных.


Примечание; если вы ставите API поверх всего, вы также можете покопаться в DTO .

3 голосов
/ 11 марта 2020

Здесь есть простая вещь.

Модель - это модель для вида и c. - они часто содержат только частичные данные по сравнению с объектами, данные из нескольких объектов или дополнительные поля, которые просто должны быть выведены. Т.е. модель может иметь коллекцию возможных значений для другого свойства, так что представление может затем отображать раскрывающийся список для выбора значения.

Объект (в терминологии Ef) представляет (просто сказал) данные в таблице или вид (хотя они могут быть немного другими). Здесь не нужно беспокоиться о презентации.

1 голос
/ 11 марта 2020

Хорошо, благодаря полученным ответам и дальнейшему чтению + внешней помощи я пришел к своим собственным выводам:

Сущность

Как сказал Стефан, это Таблица в базе данных. Это объект. Net, который представлен в базе данных. Например, класс Person с полями firstName и lastName будет таблицей в базе данных со столбцами firstName и lastName.

Модель

Здесь все становится острым. Это объект, который содержит данные, которые будут заполнять представление (например, может быть JSON, который angular будет использовать для генерации HTML при использовании архитектуры MVVM). Еще одна очень важная тема c, которую следует упомянуть, - это то, что модель создается с: сущностями (одна или несколько сущностей могут использоваться для создания окончательной модели) плюс бизнес-логика c, применяемая приложением (хотя это не обязательно). Приложение может отправлять «нам» только часть общих данных, которые ему доступны. Возьмите пример: Facebook. Когда я запрашиваю свой профиль, он содержит мое имя, мою фотографию и т. Д. c. Но он не содержит, например, моих рекламных предпочтений! Таким образом, мое приложение (применяя бизнес-логику c) будет пересекать информацию и генерировать модель, которая также может рассматриваться как выполняемый контракт, содержащий определенные данные, которые ДОЛЖНЫ быть там, чтобы приложения на стороне клиента функционировали правильно (для Например, некоторые объекты в файле JSON должны быть там), поэтому Angular создает HTML (Просмотр) с данными из модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...