Современные информационные технологии.

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/.