Создание модели
Модель 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)
Если после просмотра видеоролика вы все еще не можете решить, что будете использовать — 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.