Создание модели

Модель EF хранит сведения о сопоставлении классов и свойств приложений с таблицами и столбцами баз данных. Модель EF можно создать двумя способами.

  • С помощью Code First: разработчик пишет код, чтобы указать модель. Во время выполнения EF создает модели и сопоставления на основе классов сущностей и дополнительной конфигурации модели, предоставленных разработчиком.

  • С помощью Entity Framework Designer: разработчик рисует поля и строки для указания модели с помощью Entity Framework Designer. Результирующая модель хранится в виде XML-файла с расширением EDMX. Объекты предметной области приложения обычно создаются автоматически на основе концептуальной модели.

Рабочие процессы EF

Оба этих подхода можно применять для использования в целевой базе данных или создания базы данных, что в итоге составляет 4 различных рабочих процесса. Узнайте, какие из них подходят вам лучше всего.

Мне нужно просто написать код… Я хочу использовать конструктор...
Я создаю базу данных Используйте Code First для определения модели в коде, а затем создайте базу данных. Используйте Model First для определения модели с помощью полей и строк, а затем создайте базу данных.
Мне требуется доступ к существующей базе данных Используйте Code First для создания модели на основе кода, которая сопоставляется с существующей базой данных. Используйте Database First для создания модели полей и строк, которая сопоставляется с существующей базой данных.

Просмотрите видео о выборе подходящего рабочего процесса EF.

В этом коротком видеоролике объясняются различия рабочих процессов и приводятся советы по выбору оптимального процесса.

Представляет: Роуэн Миллер (Rowan Miller)

Which Workflow ThumbWMV MP4 | WMV | (ZIP)

Если после просмотра видеоролика вы все еще не можете решить, что будете использовать — Entity Framework Designer или Code First, — изучите оба подхода.

Взгляд изнутри

Независимо от того, используете ли вы Code First или Entity Framework Designer, модель EF всегда состоит из нескольких компонентов.

  • Объекты предметной области приложения или сами типы сущностей. Этот уровень часто называют уровнем объектов.

  • Концептуальная модель, состоящая из соответствующих предметной области типов сущностей и связей, описываемых с помощью модели EDM. Этот уровень часто указывается с буквой C, означающей conceptual (концептуальный).

  • Модель хранения, представляющая таблицы, столбцы и связи, как определено в базе данных. Этот уровень часто указывается с буквой S, означающей S (хранение).

  • Сопоставление концептуальной модели со схемой базы данных. Это сопоставление, часто называют сопоставлением C-S.

Подсистема сопоставления EF использует сопоставление C-S для преобразования операций с сущностями (создание, чтение, обновление и удаление) в эквивалентные операции для таблиц в базе данных.

Сопоставление концептуальной модели и объектов приложения часто называют сопоставлением O-C. По сравнению с сопоставлением C-S сопоставление O-C является неявным и поддерживающим тип "один к одному": сущности, свойства и связи, определенные в концептуальной модели, необходимы для соответствия фигурам и типам объектов .NET. В EF4 и более поздних версиях уровень объектов может состоять из простых объектов со свойствами без зависимостей от EF. Они обычно называются традиционными объектами среды CLR (POCO), и сопоставление типов и свойств выполняется на основе соглашений о соответствии имен. Ранее в EF 3.5 существовали определенные ограничения для уровня объектов, например, сущности должны быть производными от класса EntityObject и должны использовать атрибуты EF для реализации сопоставления O-C.