Andrey on .NET | Доступна Entity Framework 5.0 RC

Доступна Entity Framework 5.0 RC

Выпущена предварительная (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".

Комментарии (9) -

Тимур 17.05.2012 13:09:02

Андрей, большое спасибо за очередную подборку материала по теме!

Я правильно понимаю, что 4.3.1 обновилась до 4.4?

@ ShurikEv: Официально версии 4.4 нет. Судя по всему такой номер сборка EF под .NET4 получила для отличия самой DLL от версии для .NET4.5.

монголоид 17.05.2012 18:11:27

Хорошая новость!

Григорий 23.05.2012 11:22:10

После обновления EF питается создать существующую таблицу, а точнее Views. Как отключить это?

@ Григорий: Не совпадает Модель?

Григорий 25.05.2012 4:41:24

Все совпадает. Потому что модель строил по вюшке

Подождите, речь идет про таблицу или представление?

Неплохо, реально новая версия быстрее работает. На больших объемах данных хорошо заметно.

Добавить комментарий