Поделиться через


Платформа Entity Framework и другие платформы

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

Модель Entity Data Model (EDM) поддерживает сценарии приложений во многих моделях хранения и сопоставляется как со средой CLR, так и с системами управления базами данных, например SQL Server. Сопоставление со средой CLR требуется для возможностей программирования, а сопоставление с реляционными базами данных – для сохраняемости. С появлением модели EDM технология ADO.NET обеспечивает комплексную платформу для сопоставления программируемых типов хранилищам данных.

В настоящее время существует по крайней мере четыре платформы, являющиеся кандидатами на новую модель данных:

  • SQL Server

  • Среда CLR

  • Унифицированный язык моделирования (UML)

  • Язык определения XML-схем (XSD)

Ни одна из существующих платформ не удовлетворяет всем требованиям приложений, работающих с данными.

  • SQL Server не обеспечивает простую интеграцию с языками программирования. Его текстовые запросы часто имеют громоздкий код. Таблицы баз данных моделируют связи с помощью внешних ключей. На языке SQL невозможно моделировать строгое включение.

  • Среда CLR не имеет ограничений, необходимых для моделирования связей.

  • Язык UML слишком абстрактный. Он не реализует типы данных и сохраняемость.

  • Спецификация XSD слишком отличается от классов языков программирования и схем баз данных, чтобы обеспечить нейтральный формат сопоставления как для среды CLR, так и для моделей реляционных баз данных.

Сопоставление модели EDM со средой CLR и системами управления базами данных

Модель EDM сопоставляется как со средой CLR, так и с реляционными базами данных. Среда CLR позволяет разработчикам использовать данные в знакомых форматах. Типы данных в коде сопоставляются с реляционными базами данных, являющимися проверенным стандартом сохраняемости данных.

Для реализации сопоставления схем, языков программирования и таблиц баз данных модель EDM применяет не зависимый от хранения механизм представления, который использует преимущества конструирования систем управления реляционными базами данных. Традиционные приложения уже пользуются представлениями баз данных для отображения и обновления данных, но конструирование представлений часто требует сложного синтаксиса SQL, предполагающего соединение и проекции таблиц. Сопоставление схем модели EDM с хранилищами соединяет код объектов с базой данных через поставщик данных ADO.NET.

Службы данных модели EDM не зависят от какой-либо определенной схемы хранения. Приложения, которым необходимо несколько источников данных, могут иметь отдельные сопоставления для каждого источника данных.

Платформа разработки

Модель EDM поддерживает проектирование приложений на каждом этапе реализации. Модель EDM поддерживает множество полезных существующих конструкций, а в проектировании используются основные понятия хорошо известных систем моделирования данных, например модели реляционной базы данных, модели «сущность-связь» и среды CLR.

Модель EDM моделирует сложные функции приложений и декларативно охватывает семантические связи между программируемыми объектами и хранилищем базы данных.

Модель EDM включает функции модели реляционных баз данных и расширяет ее, добавляя строго типизированные идентификаторы, ссылки и связи на уровне сущностей.

Так как спецификации модели EDM слишком большие, можно использовать только их часть. Например, приложение или платформа может использовать сущности, ассоциации и ссылки и не использовать наследование.

Модель EDM расширяется согласно следующим двум принципам.

  • Новые типы и расширения существующих типов могут определяться с помощью наследования. Приложения могут определять связи между типами, не ограничиваясь границами схемы.

  • Расширения существующих данных, основанных на модели EDM, не влияют на функции, не использующие эти расширения.

Совместного использования данных приложениями и платформами можно добиться, определив модели данных приложения в терминах модели EDM. Пространство имен, определенное для одного приложения, можно использовать из другого приложения, построенного на основе модели EDM.

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

Интеграция модели EDM со средой CLR позволяет охватить многостороннюю семантику данных. Система типов модели EDM сопоставляет декларации в языках программирования с данными базовых структур хранилища.

Сущности модели EDM логически не зависимы от используемой реализации сохраняемости. Модель данных не требует конкретного сопоставления или реализации, поэтому ее сущности можно сопоставлять с различными физическими источниками данных. Модель EDM не относится к категории языка описания данных DDL SQL Server и не предназначена для его замены.

Этапы проектирования

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

  • Сущности и связи в домене приложения указываются в XML-файле.

  • Метаданные, описывающие структуру базы данных, в которой будут храниться данные для приложения, указываются в другом XML-файле.

  • Сущности и связи в первой схеме сопоставляются с соответствующими структурами базы данных в файле метаданных.

Первая схема представляет концептуальный этап разработки, когда сущности и связи определяются на языке, имеющем синтаксис XML, который называется языком CSDL. Файлы этого типа имеют расширение CSDL. Дополнительные сведения о синтаксисе языка CSDL см. в разделе Схемы (модель EDM).

Схема метаданных хранилища определяется на языке SSDL.

Сопоставление концептуальных схем с метаданными хранилища использует третий XML-синтаксис, который называется языком MSL. Сведения о сущностях и связях сопоставления и типах EDM-схем см. в разделе Спецификация схем и сопоставлений (платформа Entity Framework).

CSDL-схема применяется для формирования модели программируемых объектов, которую использует код приложений. Языки, поддерживаемые средой CLR, могут использовать объектную модель, созданную процессом построения. Примеры кода приложения см. в разделе Образцы приложений (платформа Entity Framework).

См. также

Основные понятия

Реализация сущностей (модель EDM)
Реализация ассоциаций (модель EDM)

Другие ресурсы

Спецификации модели EDM
Образцы приложений (платформа Entity Framework)