в чем разница между моделью и сущностью - PullRequest
42 голосов
/ 05 января 2012

Я смущен, чтобы понять, что означают эти слова:

Entity, Model, DataModel, ViewModel

Может ли любое тело помочь мне понятьим, пожалуйста?Спасибо всем.

Ответы [ 4 ]

34 голосов
/ 05 января 2012

Надеюсь, я не упустил вашу точку зрения здесь king.net ...

В любом случае, если вы говорите о моделировании сущностей или моделировании сущностей (ERD):

  • сущность представляет любую сущность реального мира - например, студент, курс,
  • сущность будет иметь атрибуты - например, у ученика есть имя, фамилия, дата рождения
  • сущность будетиметь отношения - например, студент «зачислен на» курс (где студент и курс являются сущностями с атрибутами, а «зачислен на» - это отношение.
  • отношение может быть «один к одному», «один»).-ко-многим "или" многие-ко-многим "- например, один студент" зачислен на "многие курсы, и аналогично один курс" имеет "много студентов.
  • отношения также имеют кардинальность

Добавление связей между сущностями создает «модель данных». Вы смоделировали некоторую систему реального мира и внутренние сущности / объекты в этой системе. Следующим шагом является ее нормализация, чтобы обеспечить ее соответствие «нормальной форме».

в ERDВ терминах у вас могут быть «логические» и «физические» модели.Логика описывает модель данных в простых высокоуровневых терминах, в которых отсутствуют технические детали, необходимые для ее реализации.Он представляет собой обзор системного решения.Физическая модель включает в себя технические детали, необходимые для фактической реализации системы (например, «таблицы объединения« многие ко многим »», необходимые для реализации отношений «многие ко многим»).

Вот некоторые учебные пособия в Интернете(хотя я уверен, что их должно быть тысячи):

Я не совсем уверен, что вы подразумеваете под "моделью" и "видом модели" в связанном контексте.Не уверен, что вы можете путать это с парадигмой Model-View-Controller (MVC).Здесь модель представляет собой некоторый компонент данных, и представление представляет наблюдателя этих данных (например, компонент пользовательского интерфейса таблицы или графика).Есть много он-лайн объяснений «контроллера вида модели» или «MVC».

Надеюсь, это поможет, Уэйн

31 голосов
/ 10 сентября 2016

Определение этих терминов весьма неоднозначно.В разных местах вы найдете разные определения.

Сущность : Сущность представляет один экземпляр вашего доменного объекта, сохраненный в базе данных в виде записи.Он имеет некоторые атрибуты, которые мы представляем в виде столбцов в наших таблицах.

Модель : модель обычно представляет объект реального мира, связанный с проблемой или пространством домена.В программировании мы создаем классы для представления объектов.Эти классы, известные как модели, имеют некоторые свойства и методы (определяющие поведение объектов).

ViewModel : термин ViewModel происходит от MVVM (модель View ViewModel)дизайн шаблона.Есть случаи, когда данные, которые будут отображаться представлением, поступают из двух разных объектов.В таких сценариях мы создаем класс модели, который состоит из всех свойств, требуемых представлением.Это не модель предметной области, а ViewModel , потому что ее использует конкретное представление.Кроме того, он не представляет объект реального мира.

DataModel : Для решения проблемы объекты взаимодействуют друг с другом.Некоторые объекты разделяют отношения между ними и, следовательно, образуют модель данных, которая представляет объекты и отношения между ними.

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

Чтобы узнать больше об объектных отношениях, посетите: Основы объектных отношений

Для получения более подробной информации посетите: Сущность против модели против ViewModel против DataModel

3 голосов
/ 01 сентября 2014

Прежде всего, чтобы узнать о сущности, которую вы должны знать о классе.Все они представляют одни и те же поля, но изменения терминологии основаны на объявлении.

Давайте рассмотрим таблицу из любой базы данных [SQL, ORACLE, Informix, Cassandra ..] в качестве примера.

CLASS:

Обычно таблица считается классом до тех пор, пока она не будет добавлена ​​в edmx или dbmx.

 //Student class
        public class Student()
        {
        //Properties
        public int StudentNumber;
        public string StudentName;
        }

ENTITY:

  • После перетаскивания/ добавление таблицы в dbmx / edmx, она называется Entity.

  • Каждый объект генерируется из соответствующего класса, и мы можем добавлять атрибуты к объекту, которые используются для выполнения операций с использованием
    linq или сущность.

DATAMODEL:

  • Содержит все поля в таблице.

  • DATAMODEL - это прямая ссылка на класс вашего cshtml или контроллера, где вы можете получить доступ к атрибутам для выполнения операций CRUD.

VIEWMODEL:

  • В некоторых ситуацияхнам нужно выполнять операции CRUD более чем одной модели (вкладкаle).
  • Таким образом, мы объединяем все необходимые модели в классе и определяем их в его конструкторе.

Пример: Предположим, что

//Student class
public class Student()
{
//Properties
public int StudentNumber;
public string StudentName;
}
//Marks Class
Public class Marks()
{
public int Maths;
public int Physics;
public int Chemistry;

//Now sometimes situations occur where we have to use one datamodel inside //other datamodel.
public Student StudentModel;
}
2 голосов
/ 22 ноября 2018

Организация:

Сущность - это представление элемента реального мира в Object Relational Mapping (ORM) в качестве Entity Framework. Это представление будет сопоставлено с таблицей в базе данных, а ее атрибуты будут преобразованы в столбцы. Сущность пишется с использованием класса POCO, который является простым классом, как вы можете видеть в следующем примере на C #:

using System;
using System.Collections.Generic;
using System.Text;

namespace MyAplication.Entity
{
    public class Person
    {
        public long PersonId { get; set; }
        public string Name { get; set; }
        public short Age { get; set; }
    }
}

Работа с созданием пользовательского интерфейса - сложная задача. Чтобы все было организовано, программисты разделяют свои приложения на слои.

Каждый слой отвечает за задачу, и это предотвращает путаницу кода. Именно в этом сценарии появляются архитектурные шаблоны, такие как MVC и MVVM.

Модель:

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

ViewModel:

Модель представления в архитектуре MVVM очень похожа на модель в архитектуре MVC. Однако ViewModel - это упрощенное представление данных, содержащее только ту информацию, которая требуется для построения представления.

using System;
using System.Collections.Generic;
using System.Text;
using MyAplication.Web.ViewModel.BaseViewModel;

namespace MyAplication.Web.ViewModel.Person
{
    public class PersonNameViewModel : BaseViewModel<string>
    {
        //I just neet the name
        public string Name { get; set; }
    }
}

DataModel:

Это просто абстрактная модель (эта модель отличается от модели уровня MVC), которая устанавливает отношения, которые существуют между элементами, которые представляют сущности реального мира. Это очень всеобъемлющий предмет.

...