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


Проектирование и реализация (модель EDM)

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

Инфраструктура модели EDM предоставляет основные типы сущностей и ассоциаций, которые используются в концептуальной схеме; разработчики расширяют эти основные типы в той степени, в какой это потребуется для приложений. И основные типы модели EDM, и пользовательские модули определены в XML-схемах.

Проект, формализованный в схемах

Типы модели EDM проектируются в схемах в целях обеспечения логической целостности данных, а также соблюдения ограничений деловых и технических приложений. Если проект разрабатывается исключительно на концептуальном уровне, то появляется возможность исследовать любые перестановки структуры, поскольку это не приводит к усложнению задачи внесения изменений. После завершения разработки абстрактной спецификации объекты, определенные в схемах, становятся проектными шаблонами для программируемых объектов.

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

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

Реализация служб объектов из схем

В модели EDM сущности и связи формально определены в синтаксисе XML в схеме проектирования. Эта схема сопоставляется с другой схемой, которая содержит метаданные, описывающие модель хранения. Типы данных среды CLR, предназначенные для использования в прикладном коде, формируются исходя из схемы проектирования. Дополнительные сведения о схемах см. в разделе Схемы (модель EDM).

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

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

Дополнительные сведения о том, как определить сущности и связи в модели EDM, см. в разделе Типы модели EDM.

См. также

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

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

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

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