Доступна для загрузки финальная версия Entity Framework 4.3.
Что нового?
Основные нововведения, относительно Entity Framework 4.2, включают в себя:
- Новый инструмент – Code First Migrations. Он предназначен для изменения схемы базы данных вслед за модификациями Модели. Возможны два способа миграций:
- автоматическая (automatic) – Entity Framework самостоятельно попытается найти и внести изменения в таблицы;
- программная (code-base) – разработчик описывает модификации Модели в специальных классах, которые Entity Framework использует для корректировки схемы базы данных.
- Отказ от служебной таблицы EdmMetadata.
- Исправлен метод GetDatabaseValues(), который теперь позволяет размещать классы сущности и контекста в различных пространствах имен.
- Добавлена поддержка юникодных имен DbSet.
- Введена поддержка Data Annotations для internal, protected и private свойств. При этом необходимо вручную добавить их в Модель с помощью Fluent API.
- Увеличено число настроек, задаваемых в конфигурационном файле (Web.config или App.config): фабрика соединений, инициализатор баз данных, включая параметры для создания этих объектов и т.д. Подробности доступны в блоге разработчиков Entity Framework.
Основные отличия от Entity Framework 4.3 beta 1:
- Если база данных уже существует, то создается код для программой (code-based) миграции. При необходимости можно отменить такое поведение, указав параметр -EnableAutomaticMigrations.
- Введена новая константа $InitialDatabase, обозначающая исходное состояние базы данных. Например, если необходимо вернуться к исходному состоянию, то можно использовать команду: Update-Database -TargetMigration:$InitialDatabase
- Утилита командной строки для выполнения миграции переименована из Update-Database.exe в migrate.exe.
- При создании установочного пакета NuGet файл migrate.exe может быть размещен в папке Tools. Но при обращении к нему необходимо передать путь до сборки проекта в параметре /StartUpDirectory. Например: migrate.exe MyAssembly /StartUpDirectory:C:\MyProject\bin\debug
- Исправлена ошибка, возникавшая в некоторых случаях при использовании Package Manager Console для вызова команд миграции.
- Устранена ситуация, когда использование параметра –Script приводило к ошибке. Это проявлялось в бета версии, если миграция начиналась не с пустой базы данных.
Как загрузить новую версию?
Entity Framework 4.3 доступна для установки в проект через NuGet. Имя установочного пакета не изменилось: EntityFramework. Команды NuGet:
- для установки: Install-Package EntityFramework
- для обновления с предыдущих версий: Update-Package EntityFramework
Если было произведено обновления, то необходимо перезапустить Visual Studio. Это нужно для обновления сборки с командами миграции.
Дополнительные материалы (на английском)
Приведенные ниже две статьи описывают принципы различных подходов (Code / Model / Database First), которые доступны при использовании Entity Framework:
Кроме того, опубликованы материалы, в которых подробно рассмотрены возможности как автоматической (automatic), так и программной (code-based) миграции данных:
А что дальше?
Разработчики обещают, что в Entity Framework 5.0 наконец-то появится долгожданная поддержка enum. Кроме того, будут доступны пространственные типы данных (spatial data types) и улучшена производительность.
Задержка с появлением указанных возможностей в текущей версии вызвана необходимостью обновления сборок, которые входят в состав .NET Framework. Это можно будет сделать только с выходом .NET Framework 4.5. Поэтому сразу после появления её следующей предварительной версии будет доступна и Entity Framework 5.0 beta 1. Ждать остается не так и долго.
Поддержка
Вопросы, касающиеся текущей версии Entity Framework, можно задать на официальном форуме: ADO.NET Entity Framework.