Создание моделей и сопоставлений

Приложения и службы Entity Framework основаны на сведениях о модели и сопоставлении, выраженных на трех языках на базе XML.

CSDL представляет данные приложений в виде набора сущностей и отношений в концептуальной модели и является реализацией модели EDM. Модель хранения выражена на языке SSDL и представляет схему хранения данных. Сопоставление между двумя моделями выражено на языке MSL.

Содержимое языков CSDL, SSDL и MSL для приложений может быть сформировано автоматически с помощью ADO.NET Entity Data Model Tools. Entity Data Model Wizard формирует сведения о моделях и сопоставлении так же, как и классы данных из существующей базы данных. Затем Entity Data Model Designer (конструктор сущностей) может использоваться для графического изменения сведений о моделях и сопоставлении. Можно с помощью конструктора сущностей графически создать концептуальную модель и потом использовать Generate Database Wizard для автоматического формирования модели хранения, сопоставления, классов данных и базы данных для поддержки концептуальной модели. В любом из этих сценариев можно применить Update Model Wizard для обновления сведений о моделях и сопоставлении при изменении базовой базы данных.

Программа командной строки Генератор модели EDM (EdmGen.exe) позволяет создать простую концептуальную модель с сопоставлением «один к одному» между сущностями и таблицами в источнике данных. Программа EdmGen.exe позволяет также проверить концептуальную модель и создать основанные на типах сущностей классы данных в модели. Эта программа входит в состав компонентов среды выполнения Entity Framework , включенных в .NET Framework начиная с версии 3.5 с пакетом обновления 1 (SP1).

Вопросы создания

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

  • Все сущности должны иметь ключи. Если в базе данных имеется таблица без первичного ключа, то средства модель EDM (сущностная модель данных) пытаются вывести ключ для соответствующей сущности. Кроме того, средства модель EDM (сущностная модель данных) создают в схеме хранилища элемент DefiningQuery, который делает данные этой сущности доступными только для чтения. Чтобы включить возможность обновления всех данных сущности, необходимо убедиться, что созданный ключ является допустимым, а затем удалить элемент DefiningQuery.

  • Для таблицы, содержащей только внешние ключи (иногда называемой «чистой соединяемой таблицей») и представляющей связь «многие ко многим» между двумя таблицами в базе данных, не будет соответствующей сущности в концептуальной модели. Если средства модель EDM (сущностная модель данных) обнаружат такую таблицу, таблица представляется в концептуальной модели в виде ассоциации типа «многие ко многим», а не в виде сущности. В качестве примера можно привести ассоциацию CourseInstructor в модели School. Дополнительные сведения см. в разделе Создание EDMX-файла School (краткое руководство по платформе Entity Framework).

Модель School

Подразделы этого раздела Приступая к работе (платформа Entity Framework) ссылаются на образец базы данных под названием School. В разделе Создание образца базы данных School (краткое руководство по Entity Framework) можно найти скрипт для создания базы данных School в экземпляре SQL Server.

База данных School содержит следующие таблицы.

  • Course

  • StudentGrade

  • CourseInstructor

  • Department

  • OfficeAssignment

  • OnlineCourse

  • OnsiteCourse

  • Person

В этом примере базы данных показано множество сценариев сложного моделирования, поддерживаемых средствами модель EDM (сущностная модель данных) . Скрипт создает связи между таблицами и вставляет данные для запуска и просмотра результата работы образцов. На следующем рисунке показана модель School, отображаемая в конструкторе моделей EDM ADO.NET:

Модель EDM «School» в конструкторе сущностей

См. также

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

Сопоставление концептуальной модели режима хранения

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

Настройка платформы Entity Framework (задачи Entity Framework)
Приступая к работе (платформа Entity Framework)
Entity Data Model Tools
Спецификации языка CSDL, SSDL и MSL