Создание модели EDM
Приложения и службы Entity Framework строятся на основе модели Entity Data Model. Эта модель представляет данные приложения в виде набора сущностей и связей, сопоставленных с определенным источником данных. Модель EDM состоит из концептуальной модели, выраженной в виде сущностей и связей, модели хранения, представляющей схему логической модели, и сопоставления между этими двумя моделями. Стадия разработки проекта обычно начинается с концептуальной модели, а затем на ее основе выводится логическая модель.
Для разработчиков, которые хотели бы создать производную модель Entity Data Model на основе существующей базы данных, платформа Entity Framework предоставляет набор средств для создания и проверки модели EDM и создания программируемых классов, основанных на концептуальной модели. Программа командной строки Генератор модели EDM (EdmGen.exe) позволяет создать простую модель с сопоставлением «один к одному» между сущностями и таблицами в источнике данных. Программа EdmGen.exe позволяет также создать основанные на типах сущностей классы данных и проверять модели EDM. Эта программа входит в состав компонентов среды выполнения Entity Framework платформы .NET Framework 3.5 с пакетом обновления 1 (SP1).
Среда Visual Studio 2008 с пакетом обновления 1 (SP1) включает набор интегрированных средств Entity Data Model, которые позволяют создать модель, содержащую выбранные объекты из источника данных. Затем можно изменить концептуальную модель и сопоставление с помощью конструктора моделей EDM, чтобы получить концептуальную модель, необходимую для создания приложения. Дополнительные сведения см. в разделе Средства работы с моделью EDM.
Вопросы создания
При создании модели EDM необходимо учитывать следующие соображения.
Все сущности должны иметь ключи. Если в базе данных имеется таблица без первичного ключа, то средства модели EDM пытаются вывести ключ для соответствующей сущности. Кроме этого, средства модели EDM создают в хранилище элемент DefiningQuery, который делает данные этой сущности доступными только для чтения. Чтобы включить возможность обновления всех данных сущности, необходимо убедиться, что созданный ключ является допустимым, а затем удалить элемент DefiningQuery.
Для таблицы, которая представляет связь типа «многие ко многим» между двумя таблицами в базе данных, может не оказаться эквивалентной сущности в концептуальной схеме. Если средства модели EDM обнаружат такую таблицу, в которой отсутствуют столбцы помимо двух внешних ключей, таблица сопоставления представляется в концептуальной схеме в виде ассоциации типа «многие ко многим», а не в виде сущности. В качестве примера можно привести ассоциацию CourseInstructor в модели School. Дополнительные сведения см. в разделе Создание модели EDM School (краткое руководство по платформе Entity Framework).
В этой версии средства модели Entity Data Model поддерживают только автоматическое создание модели EDM на основе существующего источника данных. Нельзя автоматически создать источник данных, например реляционную базу данных, на основе концептуальной модели.
Модель School
Подразделы этого раздела ссылаются на образец базы данных с именем School. В разделе Создание образца базы данных School (краткое руководство по Entity Framework) можно найти сценарий для создания базы данных School в SQL Server.
База данных School содержит следующие таблицы.
Course
CourseGrade
CourseInstructor
Department
OfficeAssignment
OnlineCourse
OnsiteCourse
Person
В этом примере базы данных показано множество сценариев сложного моделирования, поддерживаемых средствами модели EDM. Сценарий создает связи между таблицами и вставляет данные для запуска и просмотра результата работы образцов. На следующем рисунке показана модель EDM School, отображаемая в конструкторе моделей EDM ADO.NET:
См. также
Основные понятия
Сопоставление концептуальной модели со схемой хранения
Моделирование данных на платформе Entity Framework
Другие ресурсы
Настройка платформы Entity Framework (задачи Entity Framework)
Приступая к работе (Entity Framework)
Средства работы с моделью EDM
Спецификации модели EDM
Спецификация схем и сопоставлений (платформа Entity Framework)