Современные информационные технологии.
2. Вычислительная техника и программирование
Морозов М.С.
Национальный технический университет Украины «Киевский политехнический институт имени Игоря Сикорского»
Технология Entity Framework
Entity Framework представляет
специальную объектно-ориентированную технологию на базе фреймворка
.NET для работы с данными. Если традиционные средства ADO.NET позволяют
создавать подключения, команды и прочие объекты для взаимодействия с базами
данных, то Entity Framework
представляет собой более высокий уровень абстракции, который позволяет
абстрагироваться от самой базы данных и работать с данными независимо от типа
хранилища [1].
Центральной концепцией Entity Framework является понятие сущности или entity.
Сущность представляет набор данных, ассоциированных с определенным объектом.
Поэтому данная технология предполагает работу не с таблицами, а с объектами и
их наборами [2].
Отличительной чертой Entity Framework является использование запросов LINQ для выборки
данных из БД. С помощью LINQ возможно не только извлекать определенные строки, хранящие
объекты, из БД, но и получать объекты, связанные различными ассоциативными
связями [2].
Другим ключевым понятием является Entity
Data Model. Эта модель
сопоставляет классы сущностей с реальными таблицами в БД.
Entity Data Model
состоит из трех уровней: концептуального, уровень хранилища и уровень
сопоставления (маппинга) [3].
На концептуальном уровне происходит определение классов
сущностей, используемых в приложении.
Уровень хранилища определяет таблицы, столбцы, отношения
между таблицами и типы данных, с которыми сопоставляется используемая база
данных.
Уровень сопоставления (маппинга)
служит посредником между предыдущими двумя, определяя сопоставление между
свойствами класса сущности и столбцами таблиц.
Entity Framework предполагает три
возможных способа взаимодействия с базой данных [2]:
– database first: Entity Framework
создает набор классов, которые отражают модель конкретной базы данных;
– model first: сначала
разработчик создает модель базы данных, по которой затем Entity
Framework создает реальную базу данных на сервере;
– code first: разработчик
создает класс модели данных, которые будут храниться в бд,
а затем Entity Framework по
этой модели генерирует базу данных и ее таблицы.
Платформа Entity Framework позволяет запрашивать, вставлять, обновлять и
удалять данные, представленные типизированными объектами среды CLR, являющимися
экземплярами типов сущностей. Типы сущностей представляют сущности,
определенные в концептуальной модели. Платформа Entity
Framework сопоставляет сущности и связи, которые
определены в концептуальной модели, с источником данных. Платформа Entity Framework предоставляет
средства для выполнения следующих задач [1]:
– материализации в виде объектов данных, возвращенных из
источника данных;
– отслеживания изменений, внесенных в объекты;
– обработки параллелизма;
– распространения изменений в объектах в источник данных;
– привязки объектов к элементам управления.
В составе платформы ADO.NET Entity
Framework предусмотрены средства для автоматического
формирования уровня объектов на основе концептуальной модели. Эти классы данных
можно настраивать различными способами в зависимости от требований приложения.
Пользовательские классы данных можно также использовать с моделью данных. Это
полезно при обновлении классов данных существующих приложений для использования
платформы Entity Framework
или в случае, если необходима большая степень управления созданием классов
данных [2].
Entity Framework позволяет
использовать пользовательские классы данных с моделью данных без внесения
изменений в классах данных, если имена типов сущностей, сложных типов и
свойства пользовательских классов данных совпадают с именами типов сущностей,
сложных типов и свойствами концептуальной модели.
Литература:
1. Фаулер М. Архитектура корпоративных программных приложений.: Пер.
с англ. – М.:
Издательский дом "Вильямс", 2006. – 544 с.
2. Введение в Entity Framework [Электронный ресурс]. – Режим доступа: https://metanit.com/sharp/entityframework/1.1.php.
3. Entity Framework Architecture [Электронный
ресурс]. – Режим доступа: https://habrahabr.ru/post/142818/.