Разработка сущностной модели данных с помощью Entity Framework - Что такое EDM

ОГЛАВЛЕНИЕ

Что такое EDM

Прежде чем углубляться в создание и управление сущностной моделью, расскажем вкратце, что же такое модель EDM и как она взаимодействует с остальными составляющими платформы Entity Framework. Платформа Entity Framework состоит из множества компонентов. К ним, в частности, относится спецификация EDM и связанные с ней сопоставления, интерфейсы API, взаимодействующие с моделью EDM, и средства, помогающие при определении и управлении сущностной моделью и сопоставлениями. После создания сущностной модели можно писать на ее основе код, используя различные интерфейсы API, например поставщик EntityClient или службы объектов (в том числе LINQ to Entities).

Поставщик данных EntityClient схож с традиционными объектами ADO.NET. Он использует объекты EntityConnection и EntityCommand и возвращает DbDataReader. Команды для поставщика EntityClient пишутся с использованием языка Entity SQL, который напоминает T-SQL, но работает не с объектами-базами данных, а с сущностями, определенными в модели, и с объектами, материализованными при помощи служб объектов. Службы объектов можно использовать для взаимодействия с моделью EDM — либо при помощи Entity SQL, либо при помощи LINQ to Entities. Службы объектов позволяют разработчикам воспользоваться построенными на основе концептуальной модели классами, предлагающими возможности наподобие строго типизированных объектов и сохранения (см. рис. 1).

 

Рис. 1 Обзор Entity Framework 

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

 

Рис. 2 Entity Framework подключает приложение к своей базы данных

Сущностная модель приложения описывается на языке CSDL. CSDL — это язык формата XML, в котором определяются сущности и связи между ними. Разработчик взаимодействует с ними через интерфейс API, например LINQ to Entities. В платформе используется также язык SSDL — язык формата XML, используемый для определения схем хранилищ реляционных баз данных, — и язык MSL, используемый для задания соответствий между сущностями CSDL и схемой хранилищ, описанной на языке SSDL.

В CSDL разработчик имеет наибольшую свободу действий, поскольку именно здесь определяются сущности, с которыми ему чаще всего и приходится работать. На рис. 2 показано, что одни сущности могут сопоставляться отдельным таблицам в базе данных, а другие — целой группе таблиц. Сопоставление сущностей формируется группой разработчиков на основе бизнес-модели. Она зачастую строится вокруг одной единственной сущности, которая представляется несколькими физическими таблицами базы данных. На рис. 2 также показано, что сущность может сопоставляться представлению базы данных и может принимать метод, вызывающие хранимые процедуры. Сущности могут выводиться из других сущностей с использованием схемы наследования, существующей в концептуальной модели. Это лишь несколько способов формирования сущностной модели, доступных в средствах проектирования EDM.