Выпущена предварительная (Release Candidate) версия библиотеки Entity Framework 5.0. По сравнению с Beta2 в ней улучшена поддержка виртуальных хостингов и дан зеленый свет использованию в коммерческих проектах.
Что нового в Entity Framework 5.0?
- Наконец появилась поддержка свойств типа enum, которая доступна для использования во всех подходах: Model, Database и Code First.
- С сущностях можно использовать пространственные типы данных. Для этого введены следующие типы: DbGeography и DbGeometry. Они также доступны в Model, Database и Code First подходах.
- Появилась возможность использовать функции, возвращающие пользовательские таблицы (Table-Valued User-Defined Functions) при применении подхода Database First.
- Увеличена скорость работы, по сравнению с предыдущими версиями 4.x. В сообщении, опубликованном в блоге разработчиков Entity Framework, сообщается об увеличении быстродействия в реальных приложениях до 67%
- Определение используемого типа SQL сервера. Необходимо напомнить, что вместо SQL Express с Visual Studio 11 поставляется LocalDb. Однако, разработчик может самостоятельно установить необходимую редакцию SQL Server. Поэтому добавлении Entity Framework 5.0 в проект, она проверяет запущен ли SQL Express (с именем экземпляра SQLEXPRESS). Если да, то он будет установлен как сервер проекта по умолчанию. В противном случае используется LocalDb.
Что нового в Entity Framework 5.0 RC по сравнению с Beta 2?
- Лицензия разрешает использование данной версии в коммерческих приложениях.
- В класс DbMigrationsConfiguration добавлено свойство CommandTimeout. Оно используется для указания максимального времени, в течении которого изменения (migrations) должны быть внесены в базу данных.
- Code First при необходимости теперь может добавлять таблицы в уже существующую базу данных. В предыдущих версиях, при использовании готовой базы данных, она автоматически считалась корректной. Теперь же сначала осуществляется проверка на наличие необходимых для сущностей таблиц. И если они не будут найдены, то Entity Framework создаст их. Такой подход необходим в случае, если на площадке для размещения сайта уже создана база данных. Подобный сценарий можно наблюдать почти на любом виртуальном хостинге.
Что исправлено в Entity Framework 5.0 RC (по сравнению с Beta 2)?
- Теперь в приложениях с частичным доверием (partial trust) не возникает исключение "Request for ConfigurationPermission failed while attempting to access configuration section entityFramework".
- В механизме миграции баз данных исправлены следующие ошибки:
- Вход в базу данных со схемой по умолчанию отличной от "dbo" приводил к сбою.
- Ошибку формата даты (DateTime) на не англоязычных региональных настройках.
- Migrate.exe не устанавливал код ошибки в случае сбоя.
- Ошибка при переименовании сущности, состоящей в отношениях вида many:many.
- Переопределение метода Seed() вызывало сбой в приложениях с частичным доверием.
- Улучшено сообщение об ошибке, когда запускаемый проект не содержи�� ссылки на сборку с методами миграции.
- ModuleToProcess отсутствует в PowerShell 3, из-за чего выводились предупреждения в консоли NuGet при установке пакета EntityFramework.
Установка Entity Framework 5.0 RC
Entity Framework 5.0 RC доступна через NuGet. Имя установочного пакета – EntityFramework. Обратите внимание на необходимость использования ключа –IncludePrerelease (или его аналога –Pre) для установки предварительной версии:
- для установки: Install-Package EntityFramework –IncludePrerelease
- для обновления с предыдущих версий: Update-Package EntityFramework –IncludePrerelease
Совместимость
Entity Framework 5.0 RC полностью совместима с Visual Studio 2010 and Visual Studio 11 Beta. Она может быть использована для разработки приложений как для .NET 4, так и для .NET 4.5.
Важно отметить, что не все описанные выше возможности поддерживаются в .NET 4. По сути для в этом случае остаются только исправления ошибок предыдущих версий. Не будет прироста производительности, не поддерживаются пространственные типы данных, перечисления, а также функции возвращающие пользовательские таблицы.
Версия добавляемой сборки зависит от того, на какую версию .NET нацелен в текущий момент проект:
- .NET 4.5 – EntityFramework.dll, версия 5.0.0.0.
- .NET 4 – EntityFramework.dll, версия 4.4.0.0.
Поэтому при смене целевой платформы проекта необходимо переустановить Entity Framework.
Дополнительные материалы (на английском)
Приведенные ниже две статьи описывают принципы различных подходов (Code / Model / Database First), которые доступны при использовании Entity Framework:
Кроме того, подготовлены отдельные описания новых возможностей:
Поддержка
Вопросы, касающиеся текущей версии Entity Framework, можно задать на официальном форуме: ADO.NET Entity Framework.
Кроме того, ввиду большой активности сообщества на сайте Stack Overflow, разработчики Entity Framework обещают уделять больше внимания заданным там вопросам. При этом они просят не забывать добавлять к сообщениям тег "entity-framework".