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

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

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

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

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

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

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

Посмотрите видео: какой рабочий процесс EF следует использовать?

Это короткое видео объясняет различия и как найти тот, который подходит для вас.

Представлено: Роуэн Миллер

Какой рабочий процесс WMVMP4 | WMV | (ZIP)

Если после просмотра видео вы все еще не уверены, хотите ли использовать EF Designer или Code First, изучите оба подхода!

Взгляд под капотом

Независимо от того, используется ли код First или EF Designer, модель EF всегда имеет несколько компонентов:

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

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

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

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

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

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