Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РГЗ.docx
Скачиваний:
3
Добавлен:
26.11.2019
Размер:
5.19 Mб
Скачать

Задание 2 Database First подход к созданию модели ef

Теоретические сведения

При разработках приложений баз данных стандартными способами возникает ряд проблем:

  • пользовательский уровень приложения и объекты обработки бизнес данных разрабатываются на ОО языках (С# и т.д.);

  • при обращении к базе данных, программист выходит за рамки объектно-ориентированной разработки и конструирует запрос SQL, который отправляется на сервер;

  • компилятор не может проверить корректность синтаксиса запроса и не может гарантировать, что использовались правильные таблицы или столбцы базы данных.

Проблема решается путем использования ORM, которая обеспечивает реализацию привязки объекта к базе данных. Платформа Entity Framework представляет собой один из вариантов ORM.

EDM используется для описания бизнес-сущностей через концептуальную сущностную модель, а платформа Entity Framework переводит их в физическую форму (в таблицы, представления, функции и процедуры базы данных). Это дают возможность взаимодействовать с концептуальными сущностями, а не с объектами физического хранилища.

Существует три подхода к созданию EDM:

  1. Database First

  • Приложение для работы с существующей БД.

  • Модель и классы генерируются по структуре существующей БД.

  • Информация о структуре базы (store schema), модель данных (conceptual model) и маппинг их друг на друга содержится в XML в файле .edmx

  1. Model First

  • Если базы нет, модель создается в дизайнере, по ней генерируется структура новой БД и классы.

  • После окончания работ над моделью дизайнер сгенерирует DDL-код для создания базы.

  • Для хранения информации о модели и маппингах используется .edmx.

  1. Code First

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

  • По коду классов можно построить структуру новой БД или по существующей БД генерируются классы, модель не используется

В этом задании используется подход База данных вначале (Database first)

Данный подход подразумевает, что в первую очередь проектируется и разрабатывается база данных. Это может быть сделано при помощи любых доступных разработчику инструментов. После этого на её основе Entity Framework создаст описание EDM и классы Концептуальной модели.

При таком варианте проектирования архитектуры приложения главная роль отводится структуре базы данных. Классы бизнес логики вынуждены адаптироваться под неё. Однако это позволяет максимально раскрыть потенциал используемой системы управления базами данных.

Пошаговая инструкция

Чтобы использовать рассматриваемый подход в своем проекте, необходимо иметь существующую базу данных. Visual Studio предоставляет возможность создать базу данных без подключения дополнительных программных средств. Для этого в обозревателе серверов выбираем пункт меню Создание соединения.

Рисунок 2.1 – Создание базы данных

Задаем параметры соединения (имя сервера, имя файла базы данных).

Рисунок 2.2 – Параметры соединения

Для создания таблиц выбираем пункт Создание таблицы в обозревателе серверов.

Рисунок 2.2 – Создание таблиц

Формируем схемы таблиц с помощью бланка заполнения.

Рисунок 2.3 – Формирование таблицы

Обозреватель серверов обеспечивает навигацию по таблицам и полям.

Рисунок 2.4 – Навигация по базе данных

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

Рисунок 2.5 – Создание внешних связей

Схему таблицы можно просмотреть на бланке формирования запроса, который активизируется выбором пункта меню Новый запрос в обозревателе серверов. Бланк формирования запросов упрощает процесс создания SQL-запросов к базе данных.

Рисунок 2.6 – Бланк формирования запросов

Для заполнения таблиц выбираем пункт меню Показать данные таблицы в обозревателе серверов.

Рисунок 2.7 – Заполнение таблиц

Переходим к формированию Модели данных Entity. В консольном проекте выбрать пункт "Add Item" в контекстном меню проекта и добавить описание Модели данных Entity (ADO.NET Entity Data Model).

Рисунок 2.8 – Создание Entity Data Model

В появившемся диалоге "Entity Data Model Wizard" нужно выбрать вариант "Generate from a database". После этого потребуется указать базу данных и параметры соединения с ней (выбрать или создать строку соединения). В результате в проект будет добавлен EDMX-файл, который содержит описание EDM в формате XML.

Рисунок 2.9 – Установление связи с базой данных

Вид созданной на основе базы данных модели EDM представлен на рисунке.

Рисунок 2.10 – Модель EDM

Каждый представленный здесь класс в терминологии Entity Framework называется сущностью. Все их свойства разделены на две группы:

Связанные напрямую с полями базы данных и навигационные. Последние не имеют прямых аналогов среди полей базы данных и созданы исходя из анализа связей таблиц. Они позволяют удобно и просто запрашивать связанную c данной сущностью информацию. Кроме того, между сущностями указаны не только связи, но и их тип. При этом символ "звездочка" обозначает неограниченное число элементов (many).

Рисунок 2.10 – Просмотр свойств связи

После создания EDM вся работа с базой данных осуществляется через соответствующие классы.

Задание

Для системы, заданной номером варианта выполнит следующие действия:

  1. Создать базу данных, используя средства Visual Studio.

  2. Заполнить поля базы данных.

  3. Создать модель EDM на основе подхода DataBase First.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]