Новые Лпр-ки. Веб ЛПР новые (1). Лабораторная работа Разработка базовой основы Web приложения 5 Упражнение Создание Web приложения 5
Скачать 1.04 Mb.
|
Лабораторная работа 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 следует выполнить следующие действия: Создать типы сущностей Instructor и Student которые наследуются от Person. Переместить свойства из базовой сущности, которые относятся к производным сущностям в производные сущности. Установить ограничения на свойства в производных типах. Сделать базовую сущность абстрактной. Сопоставить каждый полученный объект в таблицу Person с условием, которое определяет, как определить, представляет строка объект Person или производный тип. |