Entity Data Model (EDM) — это расширенная версия модели Entity-Relationship, которая определяет концептуальную модель данных с использованием различных методов моделирования. Это также относится к набору понятий, которые описывают структуру данных, независимо от ее сохраненной формы.
EDM поддерживает набор примитивных типов данных, которые определяют свойства в концептуальной модели. Нам нужно рассмотреть 3 основных части, которые составляют основу Entity Framework, и вместе она называется Entity Data Model. Ниже приведены три основные части EDM.
- Модель схемы хранения
- Концептуальная модель
- Картографическая модель
Модель схемы хранения
Модель хранилища, также называемая уровнем определения схемы хранилища (SSDL), представляет схематическое представление внутреннего хранилища данных.
Концептуальная модель
Концептуальная модель, также называемая слоем определения концептуальной схемы (CSDL), является моделью реальной сущности, к которой мы пишем наши запросы.
Картографическая модель
Mapping Layer — это просто отображение между концептуальной моделью и моделью хранилища.
Логическая схема и ее сопоставление с физической схемой представляется в виде EDM.
-
Visual Studio также предоставляет Entity Designer для визуального создания EDM и спецификации отображения.
-
Результатом работы инструмента является файл XML (* .edmx), определяющий схему и отображение.
-
Файл Edmx содержит артефакты метаданных Entity Framework.
Visual Studio также предоставляет Entity Designer для визуального создания EDM и спецификации отображения.
Результатом работы инструмента является файл XML (* .edmx), определяющий схему и отображение.
Файл Edmx содержит артефакты метаданных Entity Framework.
Язык определения схемы
В ADO.NET Entity Framework для определения схемы EDM используется язык определения данных на основе XML, называемый языком определения схемы (SDL).
-
SDL определяет простые типы, аналогичные другим примитивным типам, включая String, Int32, Double, Decimal и DateTime, среди прочих.
-
Перечисление, которое определяет карту примитивных значений и имен, также считается простым типом.
-
Перечисления поддерживаются только начиная с версии 5.0.
-
Сложные типы создаются из совокупности других типов. Набор свойств этих типов определяет тип сущности.
SDL определяет простые типы, аналогичные другим примитивным типам, включая String, Int32, Double, Decimal и DateTime, среди прочих.
Перечисление, которое определяет карту примитивных значений и имен, также считается простым типом.
Перечисления поддерживаются только начиная с версии 5.0.
Сложные типы создаются из совокупности других типов. Набор свойств этих типов определяет тип сущности.
Модель данных в основном имеет три ключевых понятия для описания структуры данных —
- Тип объекта
- Тип ассоциации
- Имущество
Тип объекта
Тип сущности является фундаментальным строительным блоком для описания структуры данных в EDM.
-
В концептуальной модели типы сущностей строятся из свойств и описывают структуру понятий верхнего уровня, таких как «Студенты» и «Зачисления» в бизнес-приложении.
-
Сущность представляет определенный объект, такой как определенный студент или регистрация.
-
Каждый объект должен иметь уникальный ключ объекта в наборе объектов. Набор сущностей — это коллекция экземпляров определенного типа сущностей. Наборы объектов (и наборы ассоциаций) логически сгруппированы в контейнере объектов.
-
Наследование поддерживается с типами объектов, то есть один тип объекта может быть получен из другого.
В концептуальной модели типы сущностей строятся из свойств и описывают структуру понятий верхнего уровня, таких как «Студенты» и «Зачисления» в бизнес-приложении.
Сущность представляет определенный объект, такой как определенный студент или регистрация.
Каждый объект должен иметь уникальный ключ объекта в наборе объектов. Набор сущностей — это коллекция экземпляров определенного типа сущностей. Наборы объектов (и наборы ассоциаций) логически сгруппированы в контейнере объектов.
Наследование поддерживается с типами объектов, то есть один тип объекта может быть получен из другого.
Тип ассоциации
Это еще один фундаментальный строительный блок для описания отношений в EDM. В концептуальной модели связь представляет собой связь между двумя типами сущностей, такими как Студент и Зачисление.
-
Каждая ассоциация имеет два конца ассоциации, которые определяют типы объектов, участвующих в ассоциации.
-
Каждый конец ассоциации также указывает множественность конца ассоциации, которая указывает количество объектов, которые могут находиться на этом конце ассоциации.
-
Кратность окончания ассоциации может иметь значение один (1), ноль или один (0..1) или много (*).
-
К объектам на одном конце ассоциации можно получить доступ через свойства навигации или через внешние ключи, если они представлены в типе объекта.
Каждая ассоциация имеет два конца ассоциации, которые определяют типы объектов, участвующих в ассоциации.
Каждый конец ассоциации также указывает множественность конца ассоциации, которая указывает количество объектов, которые могут находиться на этом конце ассоциации.
Кратность окончания ассоциации может иметь значение один (1), ноль или один (0..1) или много (*).
К объектам на одном конце ассоциации можно получить доступ через свойства навигации или через внешние ключи, если они представлены в типе объекта.
Имущество
Типы сущностей содержат свойства, которые определяют их структуру и характеристики. Например, тип сущности Student может иметь такие свойства, как идентификатор ученика, имя и т. Д.
Свойство может содержать примитивные данные (например, строку, целое число или логическое значение) или структурированные данные (например, сложный тип).