Главная страница

Новые Лпр-ки. Веб ЛПР новые (1). Лабораторная работа Разработка базовой основы Web приложения 5 Упражнение Создание Web приложения 5


Скачать 1.04 Mb.
НазваниеЛабораторная работа Разработка базовой основы Web приложения 5 Упражнение Создание Web приложения 5
АнкорНовые Лпр-ки
Дата19.03.2022
Размер1.04 Mb.
Формат файлаdocx
Имя файлаВеб ЛПР новые (1).docx
ТипЛабораторная работа
#403967
страница21 из 27
1   ...   17   18   19   20   21   22   23   24   ...   27

Лабораторная работа 6. Реализация наследования Table-per-Hierarchy


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

Варианты наследования Table-per-Hierarchyи Table-per-Type

База данных может хранить информацию о связанных объектах в одной таблице или в нескольких таблицах. Например, в базе данных School, таблица Person включает в себя информацию о студентах и преподавателях в одной таблице. Некоторые из столбцов применяются только к инструкторам (HireDate), некоторые только к студентам (EnrollmentDate), а некоторые как (LastName, FirstName) применяются для обеих сущностей.

Вы можете создать новые сущности Instructor и Student, которые будут наследоваться от сущности Person. Этот паттерн создания наследуемых сущностей, хранящихся в одной таблице базы данных называется table-per-hierarchy (TPH) наследование.

Для курсов база School применяет другой паттерн (см. рисунок 6.1.1). Online курсы и onsite курсы хранятся в разных таблицах, каждая из которых имеет внешний ключ, связанный с ключом таблицы Course.



Рисунок6.1.1 Связьмеждуклассами

Вы можете создать в модели данных сущности OnlineCourse и OnsiteCourse, наследуемые от сущности Course. Этот паттерн создает наследуемые сущности, находящихся в разных таблицах, а в базовой сущности хранятся общие данные. Такое паттерн называется table per type(TPT) наследование.

Паттерн TPH обеспечивает, как правило, более высокую производительность в Entity Framework, чем ТРТ, потому что TPT может привести к сложным запросам слияния. Для реализации наследования TPH следует выполнить следующие действия:

  1. Создать типы сущностей Instructor и Student которые наследуются от Person.

  2. Переместить свойства из базовой сущности, которые относятся к производным сущностям в производные сущности.

  3. Установить ограничения на свойства в производных типах.

  4. Сделать базовую сущность абстрактной.

  5. Сопоставить каждый полученный объект в таблицу Person с условием, которое определяет, как определить, представляет строка объект Person или производный тип.
1   ...   17   18   19   20   21   22   23   24   ...   27


написать администратору сайта